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";
  • 相关阅读:
    Iscroll4使用心得 (转)
    请求接口数据实例
    jQuery插件开发全解析(转)
    js中可以改变作用域的三种方式(改变this)
    this基础(转)
    Hash扫盲
    JS编码解码 (转)
    自定义菜单实例
    DOM(转)
    js扫盲
  • 原文地址:https://www.cnblogs.com/mimime/p/5821247.html
Copyright © 2011-2022 走看看