你的位置:首页 > ASP.net教程

[ASP.net教程]利用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变为强制转换。