温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

C#属性的详细介绍

发布时间:2021-08-27 14:17:32 来源:亿速云 阅读:110 作者:chen 栏目:编程语言

这篇文章主要讲解了“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#属性的详细介绍这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI