这篇文章主要讲解了“C#属性的详细介绍”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C#属性的详细介绍”吧!
富县ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:18980820575(备注:SSL证书合作)期待与您的合作!
C# 属性示例代码
class TimePeriod { private double seconds; public double Hours { get { return seconds / 3600; } set { seconds = value * 3600; } } } class Program { static void Main() { TimePeriod t = new TimePeriod(); // Assigning the Hours property causes //the 'set' accessor to be called. t.Hours = 24; // Evaluating the Hours property causes //the 'get' accessor to be called. System.Console.WriteLine("Time in hours: " + t.Hours); } }
输出
Time in hours: 24
C# 属性特点
◆属性使类能够以一种公开的方法获取和设置值,同时隐藏实现或验证代码。
◆get属性访问器用于返回属性值,而 set 访问器用于分配新值。这些访问器可以有不同的访问级别。有关更多信息,请参见 访问器可访问性。
◆value关键字用于定义由 set 索引器分配的值。
◆不实现 set 方法的属性是只读的。
C# 泛型应用中属性:
属性可以应用于泛型类型中,方式与应用于非泛型类型相同。
自定义属性只允许引用开放泛型类型(未提供类型参数的泛型类型)和封闭构造泛型类型(为所有类型参数提供参数)。
下面的C# 属性在泛型的应用示例使用此自定义属性:
class CustomAttribute : System.Attribute { public System.Object info; }
属性可以引用开放式C# 泛型类型:
public class GenericClass1{ } [CustomAttribute(info = typeof(GenericClass1<>))] class ClassA { }
使用数目适当的若干个逗号指定多个类型参数。
在此示例中,GenericClass2 有两个类型参数:
public class GenericClass2{ } [CustomAttribute(info = typeof(GenericClass2<,>))] class ClassB { }
属性可以引用封闭式构造C# 泛型类型:
public class GenericClass3{ } [CustomAttribute(info = typeof(GenericClass3 ))] class ClassC { }
引用泛型类型参数的属性将导致编译时错误:
//[CustomAttribute(info = typeof(GenericClass3))] //Error class ClassD { }
不能从 Attribute 继承泛型类型:
//public class CustomAtt: System.Attribute {} //Error
若要在运行时获得有关泛型类型或类型参数的信息,可以使用 System.Reflection 的方法。
感谢各位的阅读,以上就是“C#属性的详细介绍”的内容了,经过本文的学习后,相信大家对C#属性的详细介绍这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是创新互联,小编将为大家推送更多相关知识点的文章,欢迎关注!