当前位置: 首页 > 编程笔记 >

.NET中的属性用法分析

周越泽
2023-03-14
本文向大家介绍.NET中的属性用法分析,包括了.NET中的属性用法分析的使用技巧和注意事项,需要的朋友参考一下

本文实例分析了.NET中的属性用法。分享给大家供大家参考。具体分析如下:

1.What?什么是属性

属性是对字段的封装。当类中有了一个字段以后,为了控制这个字段对外的一些表现(例如可访问性,是只读?只写?或者对自读赋值做一些必要的验证等等)我们把这个字段私有化(private),同时留出一个公共的(public)方法,用于访问这个字段。 这个方法就是属性。
 
2.Usage?如何使用
 
对于属性,.NET总提供了两种方式定义属性。
 
① 常规定义方式

//定义一个私有字段。

//1.在需要封装的字段上 Ctrl + R   ,  Ctrl + E。可以自动封装属性。

//2.属性的get和set可以额外设置访问修饰符。

private string _name;                                            

public string Name

{

      get

       {

             return this._name;

       }

       set

       {

             this._name =Value;

       }

}

 
② 简化写法
/*

1.这种写法实质上与上边的写法一样,通过Reflector可以看到。

简写的属性,编译时编译器会自动为我们生成一个私有字段。

2.因为私有字段是编译器加的,为了保证名字不重复,名字看起来很怪异。 所以在二进制序列化时,这种写法会有一点小麻烦。 到时候再说。*/ public string Name {        get;        set; }


 
3.Essence 属性的本质
 
属性的本质是什么?初听这话是不是被问懵了?
对于大多.NET程序员来说,属性就是属性呗,get,set呗,还能怎滴?
但是对于Java程序员来说,他们想对字段封装是需要这样的。
public void Set_Name(int value)

{

    this._name= value;

}

public int Get_Name()

{

    return this._name;

}

发现没有?他们用的是一个方法。
 
那么问题来了?

.NET有什么不同吗? 答案是否定的!!
通过反编译工具,我们发现我们使用的属性get set。
最后也会被编译工具编译成 如上的两个方法。
“而.NET属性中的GET、SET,乃至简化写法,都属于.NET语法糖的范畴,是Microsoft简化了我们的写法,让.NET开发人员用着更方便!”

希望本文所述对大家的.NET程序设计有所帮助。

 类似资料:
  • 本文向大家介绍Android开发中ImageView的scaletype属性用法分析,包括了Android开发中ImageView的scaletype属性用法分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Android开发中ImageView的scaletype属性用法。分享给大家供大家参考,具体如下: ImageView的属性android:scaleType,即 ImageVie

  • 我正在将C#API从.NET Framework迁移到.NET Core 3.1。 我要求某些字段仅返回(无时间),而其他字段将返回完整的日期时间值(日期和时间)。 在过去。NET框架世界,我们可以做一个这样的快速转换器: 在我的模型中使用它,就像 这是行不通的。网芯3.1。 当我通过Swagger调用它时,返回的JSON是: 我知道您可以在<code>启动中添加<code>JsonSeriali

  • 本文向大家介绍PowerShell中调用.NET对象的静态方法、静态属性和类方法、类属性例子,包括了PowerShell中调用.NET对象的静态方法、静态属性和类方法、类属性例子的使用技巧和注意事项,需要的朋友参考一下 本文介绍在PowerShell中如何使用.NET对象,PowerShell内在支持大量的.NET对象。 调用类的静态方法 用中括号把类的名称括起来,然后输入两个冒号,然后再输入方法

  • 本文向大家介绍.Net中的json操作类用法分析,包括了.Net中的json操作类用法分析的使用技巧和注意事项,需要的朋友参考一下 本文实例展示了.Net中的json操作类用法,对于进行.Net程序设计来说是非常重要的技巧。具体分析如下: 首先需要引用 System.Web.Extensions.dll 这个类库 命名空间需要加上:System.Web.Script.Serialization  

  • 本文向大家介绍javascript中innerText和innerHTML属性用法实例分析,包括了javascript中innerText和innerHTML属性用法实例分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了javascript中innerText和innerHTML属性用法。分享给大家供大家参考。具体分析如下: 几乎所有DOM元素都有innerText,innertHTML

  • 问题内容: 在Swift中,我尝试执行以下操作: Xcode 在方法中在线上报告错误。 为什么?如果将结构更改为类,则不会出错。 问题答案: 如果要修改结构的属性,请将该函数标记为mutating。