zoukankan      html  css  js  c++  java
  • 【转】C#中的implicit 和 explicit

    The implicit and explicit keywords in C# are used when declaring conversion operators. Let's say that you have the following class:

    public class Role
    {
        public string Name { get; set; }
    }
    

    If you want to create a new Role and assign a Name to it, you will typically do it like this:

    Role role = new Role();
    role.Name = "RoleName";
    

    Since it has only one property, it would perhaps be convenient if we could instead do it like this:

    Role role = "RoleName";
    

    This means that we want to implicitly convert a string to a Role (since there is no specific cast involved in the code). To achieve this, we add an implicit conversion operator:

    public static implicit operator Role(string roleName)
    {
        return new Role() { Name = roleName };
    }
    

    Another option is to implement an explicit conversion operator:

    public static explicit operator Role(string roleName)
    {
        return new Role() { Name = roleName };
    }
    

    In this case, we cannot implicitly convert a string to a Role, but we need to cast it in our code:

    Role r = (Role)"RoleName";
  • 相关阅读:
    C++ 虚成员函数和动态联编
    C++ 多态公有继承
    C++ 继承特性
    C++ 公有派生
    C++ 基类与派生类
    C++ 类继承
    C++ 伪私有方法
    C++ new失败
    mysql用户授权
    linux时间设置
  • 原文地址:https://www.cnblogs.com/mimime/p/5821247.html
Copyright © 2011-2022 走看看