38属性的种种,只读只写属性、自动属性、静态属性、抽象属性、接口属性

□ 只读属性

public class Example
{
    string name;

    public string Name
    {

        get {return name;}

    }
}

□ 只写属性

public class Example
{
    string name;

    public string Name
    {

        set {name = value;}

    }
}

□ 可读可写属性

public class Example
{
    string name;

    public string Name
    {

        get {return name;}

        set {name = value;}

    }
}

□ 自动属性

public class Example
{
    public string Name
{get;set;}
}

自动只读属性:

public class Example
{
    public string
Name{get; private set;}
}

自动只写属性:

public class Example
{
    public string
Name{private get; set;}
}

□ 静态属性

静态属性对应一个静态字段,通常用在"单例模式"中。"单例模式"构造函数必须是私有的。

public class Example
{
    private static Example
instance = new Example();
    private Example(){}

public static Example GetInstance
   
{
        get {return instance;}

    }
}

□ 抽象属性

抽象类和抽象属性。

public abstrace class Person
{
    public
abstract string Name{get;set;}
}

抽象属性在子类中实现。

public class Student : Person
{
    private
string name;

public override string Name
    {

        get {return name;}

        set {name = value;}

    }
}

□ 接口属性

public interface IPerson
{
    string Name
{get;set;}
}

public class Student : IPerson
{
    private
string name;

public string Name
    {

        get {return name;}

        set {name = value;}

    }
}

参考资料:
A Deep Dive into C# Property

38属性的种种,只读只写属性、自动属性、静态属性、抽象属性、接口属性,布布扣,bubuko.com

时间: 2024-10-24 08:57:20

38属性的种种,只读只写属性、自动属性、静态属性、抽象属性、接口属性的相关文章

drf序列化高级、自定义只读只写、序列化覆盖字段、二次封装Response、数据库查询优化(断关联)、十大接口、视图家族、自动补全图片链接

目录 自定义只读 自定义只写 序列化覆盖字段 二次封装Response 数据库关系分析 断外键关联关系 ORM操作外键关系 ORM四种关联关系 基表 序列化类其他配置(了解) 十大接口 BaseSerializer初始化方法 十大接口序列化总结 单查群查 单增群增 单删群删 单整体改/群整体改 单局部改/群局部改 群增群改配置 十大接口小结 字段提供就校验,不提供拉到 DjangoORM内置优化机制:一次最多查21条数据 models.py response.py serializers.py

Go 只读/只写channel

Go中channel可以是只读.只写.同时可读写的. //定义只读的channel read_only := make (<-chan int) //定义只写的channel write_only := make (chan<- int) //可同时读写 read_write := make (chan int) 定义只读和只写的channel意义不大,一般用于在参数传递中,见代码: package main import ( "fmt" "time"

C#中的类属性和接口属性

类属性 类属性是类成员函数的另一种形式,它的主要任务是实现对数据的间接访问,属性的get块和set块的定义中必须明确指出是对什么数据进行访问.对于自动属性,编译器会自动创建对应的数据字段,并且实现属性的get块和set块. 接口属性 接口中可以定义属性,接口属性可以只拥有get块或set块,如果只指定了set或get访问,那么该接口属性表明,对于外部,它只允许这一种访问,这会对类实现接口属性时产生一种约束,即类中具体定义该接口属性时,其访问权限不能大于接口中指定的权限,虽然类中可以为该接口属性补

反射判断某一个属性是否只读或者只写

.Net Framework 4.0 以下,包括4.0 Type pPt = typeof(People); System.Reflection.PropertyInfo[] tPro = pPt.GetProperties(BindingFlags.Instance | BindingFlags.Public); foreach (var d in tPro) { //属性只读判断 if (d.GetGetMethod() != null && d.GetSetMethod()==nul

第六章类(七)属性3提供属性验证、只读和只写属性、取值和赋值方法的访问修饰符

只记录回忆点 如果为LastName赋了无效的值,代码就会抛出异常.拦截赋值,并通过字段风格的API对参数进行验证,这是属性的优点之一. 一个好的实践是从属性的实现中访问属性的支持字段.换言之,要一直使用属性,不要直接调用字段. 可移除属性的取值方法或赋值方法来改变属性的可访问性. 只有赋值方法的属性是只写属性,这种情况较罕见.C#6.0开始支持只读自动实现的属性. 设计规范 如果属性值不变,要创建只读属性: 不要提供只写属性,也不要让赋值方法的可访问性比取值方法更宽松: 原文地址:https:

iOS开发UI篇—手写控件,frame,center和bounds属性

iOS开发UI基础—手写控件,frame,center和bounds属性 一.手写控件 1.手写控件的步骤 (1)使用相应的控件类创建控件对象 (2)设置该控件的各种属性 (3)添加控件到视图中 (4)如果是button等控件,还需考虑控件的单击事件等 (5)注意:View Contollor和view的关系 2.注意点 在OC开发中,Storyboard中的所有操作都可以通过代码实现,程序员一定要熟练掌握代码布局界面的能力! 设置控件监听方法的示例代码如下: [btn addTarget:se

IOS开发基础篇--手写控件,frame,center和bounds属性

iOS开发UI基础—手写控件,frame,center和bounds属性 一.手写控件 1.手写控件的步骤 (1)使用相应的控件类创建控件对象 (2)设置该控件的各种属性 (3)添加控件到视图中 (4)如果是button等控件,还需考虑控件的单击事件等 (5)注意:View Contollor和view的关系 2.注意点 在OC开发中,Storyboard中的所有操作都可以通过代码实现,程序员一定要熟练掌握代码布局界面的能力! 设置控件监听方法的示例代码如下: [btn addTarget:se

[Aaronyang] 写给自己的WPF4.5 笔记[2依赖属性]

人生的意义不在于拿一手好牌,而在于打好一手坏牌 --Aaronyang的博客(www.ayjs.net)-www.8mi.me =============时隔两年后再看WPF========== 因为以前的经验,所以继承FrameworkElement,我就简写继承FWE ,继承UIElement就写继承UIE 后面重头戏就是blend中的开发,不想写的千篇一律.如果期待,左侧有关注按钮. 个人感觉,下面的这张图标比较重要,它或许有些帮助.我看东西只看分析出原理,你就可以拓三返一. Tip: 只

OS开发UI基础—手写控件,frame,center和bounds属性

OS开发UI基础—手写控件,frame,center和bounds属性 一.手写控件 1.手写控件的步骤 (1)使用相应的控件类创建控件对象 (2)设置该控件的各种属性 (3)添加控件到视图中 (4)如果是button等控件,还需考虑控件的单击事件等 (5)注意:View Contollor和view的关系 2.注意点 在OC开发中,Storyboard中的所有操作都可以通过代码实现,程序员一定要熟练掌握代码布局界面的能力! 设置控件监听方法的示例代码如下: [btn addTarget:sel