• c#进阶methods中3explicit和implicit


     为类型添加隐式转换和显示转换

    public sealed class Rational { 
        
    // Constructs a Rational from an Int32 
        public Rational(Int32 num) {
        } 
        
    // Constructs a Rational from a Single 
        public Rational(Single num) {
        } 
        
    // Convert a Rational to an Int32 
        public Int32 ToInt32() { 
            
    return 1
        } 
        
    // Convert a Rational to a Single 
        public Single ToSingle() { 
            
    return new Single(); 
        } 
        
    // Implicitly constructs and returns a Rational from an Int32 
        public static implicit operator Rational(Int32 num) { 
            
    return new Rational(num); 
        } 
        
    // Implicitly constructs and returns a Rational from a Single 
        public static implicit operator Rational(Single num) { 
            
    return new Rational(num); 
        } 
        
    // Explicitly returns an Int32 from a Rational 
        public static explicit operator Int32(Rational r) { 
            
    return r.ToInt32(); 
        } 
        
    // Explicitly returns a Single from a Rational 
        public static explicit operator Single(Rational r) { 
            
    return r.ToSingle(); 
        } 
    }

     使用

    //隐式转换 
           Rational r1 = 5// Implicit cast from Int32 to Rational 
           Rational r2 = 2.5F// Implicit cast from Single to Rational
           
    //显示转换 
           Int32 x = (Int32)r1; // Explicit cast from Rational to Int32 
           Single s = (Single)r2; // Explicit cast from Rational to Single

    实际调用

    public static Rational op_Implicit(Int32 num)
    public static Rational op_Implicit(Single num)
    public static Int32 op_Explicit(Rational r)
    public static Single op_Explicit(Rational r)

     在实际项目中,为了代码易懂,可能并不常用。但是确实为了某些情况下能看懂别人的代码,知道别人不知道的,才算进阶吧。:)

     扩展阅读 

    1参考explicit 和 implicit 的含义?

  • 相关阅读:
    JavaScript 数组中 length 属性【每日一段代码100】
    连续往上滚动jquery代码
    关于<img>标签的几个问题
    前端页面制作常见问题及解决方案
    JavaScript random() 方法【每日一段代码96】
    JavaScript split() 方法【每日一段代码99】
    JavaScript boolean 对象检查逻辑值【每日一段代码94】
    CSS 属性总结
    JavaScript max() 方法【每日一段代码97】
    JavaScript sort() 方法数组排序文字【每日一段代码92】
  • 原文地址:https://www.cnblogs.com/facingwaller/p/1917064.html
Copyright © 2020-2023  润新知