隐式转换可以通过消除不必要的类型转换来提高源代码的可读性。但是,因为隐式转换不需要程序员将一种类型显式强制转换
为另一种类型,所以使用隐式转换时必须格外小心,以免出现意外结果。一般情况下,隐式转换运算符应当从不引发异常并且
从不丢失信息,以便可以在程序员不知晓的情况下安全使用它们。
在c#中,implicit关键字可以用来做自定义类型隐式转换。下面给个例子来说明。
定义一个point类,表示一个点:
再在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; } }
使用的过程非常简单,就跟我们平时的隐式转换一样:
注意,尽量隐式转换过程中不会出错,或者能处理异常情况。否则请使用explicit变为强制转换。
以上就是implicit关键字做自定义类型隐式转换的方法,希望对大家有所帮助。
如对本文有疑问, 点击进行留言回复!!
使用Visual Studio2019创建C#项目(窗体应用程序、控制台应用程序、Web应用程序)
C#实现获取本地内网(局域网)和外网(公网)IP地址的方法分析
网友评论