zoukankan      html  css  js  c++  java
  • 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 的含义?

  • 相关阅读:
    构建之法作业要求 20160922
    构建之法作业截止 20160908
    作业成绩 20160901
    动态范围理解
    解像力理解以及单位换算;
    QT:基本知识(一);
    qml: 截图(单窗口);
    (转载)python: getopt的使用;
    python: with的使用;
    qml: 自定义输入框
  • 原文地址:https://www.cnblogs.com/facingwaller/p/1917064.html
Copyright © 2011-2022 走看看