软件编程
位置:首页>> 软件编程>> C#编程>> implicit关键字做自定义类型隐式转换的方法

implicit关键字做自定义类型隐式转换的方法

作者:大涛哥  发布时间:2021-10-22 20:00:40 

标签:implicit,自定义

 隐式转换可以通过消除不必要的类型转换来提高源代码的可读性。但是,因为隐式转换不需要程序员将一种类型显式强制转换

为另一种类型,所以使用隐式转换时必须格外小心,以免出现意外结果。一般情况下,隐式转换运算符应当从不引发异常并且

从不丢失信息,以便可以在程序员不知晓的情况下安全使用它们。

在C#中,implicit关键字可以用来做自定义类型隐式转换。下面给个例子来说明。

 定义一个Point类,表示一个点:


public class Point
  {
    public double X { get; set; }
    public double Y { get; set; }
  }

  再在Point类中定义一个静态方法,用于由字符串隐式转换为Point类型:


public class Point
{
 public double X { get; set; }
 public double Y { get; set; }
 public static implicit operator Point(string constValue)
 {
  var result = new Point();
  try
  {
   var arPoint = constValue.Split(new[] {","}, StringSplitOptions.RemoveEmptyEntries);
   result.X = Convert.ToDouble(arPoint[0]);
   result.Y = Convert.ToDouble(arPoint[1]);
  }
  catch
  {
   result.X = 0;
   result.Y = 0;
  }
  return result;
 }
}

使用的过程非常简单,就跟我们平时的隐式转换一样:   


Point p = "3,4.5";
      Console.WriteLine("X:{0}, Y:{1}", p.X, p.Y);

 注意,尽量隐式转换过程中不会出错,或者能处理异常情况。否则请使用explicit变为强制转换。

 

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com