您好,登录后才能下订单哦!
这篇文章主要讲解了“C#属性的详细介绍”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C#属性的详细介绍”吧!
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<T> { } [CustomAttribute(info = typeof(GenericClass1<>))] class ClassA { }
使用数目适当的若干个逗号指定多个类型参数。
在此示例中,GenericClass2 有两个类型参数:
public class GenericClass2<T, U> { } [CustomAttribute(info = typeof(GenericClass2<,>))] class ClassB { }
属性可以引用封闭式构造C# 泛型类型:
public class GenericClass3<T, U, V> { } [CustomAttribute(info = typeof(GenericClass3<int, double, string>))] class ClassC { }
引用泛型类型参数的属性将导致编译时错误:
//[CustomAttribute(info = typeof(GenericClass3<int, T, string>))] //Error class ClassD<T> { }
不能从 Attribute 继承泛型类型:
//public class CustomAtt<T> : System.Attribute {} //Error
若要在运行时获得有关泛型类型或类型参数的信息,可以使用 System.Reflection 的方法。
感谢各位的阅读,以上就是“C#属性的详细介绍”的内容了,经过本文的学习后,相信大家对C#属性的详细介绍这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。