C#字段和属性的区别

2021-03-10 01:28

阅读:350

标签:int   修改   ret   this   rap   system   console   prot   没有   

一、c#字段和属性的区别与介绍(转自https://blog.csdn.net/qq_39038038/article/details/80889017)

字段:

访问权限 ? 值类型 ?字段名?

例如:private int number;

属性:

public int Number{

? ? get{

?????????return this.number;

????}

????set{

????? ? this.number = value;

????}

}

字段和属性的区别。

例子说明:

????????? ? 如果我们有一个公有字段 如成绩的分数(public int score; ),我们可以在类的外部,访问,修改字段。但是假如我们给分数 赋值,score = 10000;编译不会报错,但是不符合常理。

????????? ? 这里我们就需要使用属性来限制?对字段提供一些安全保护 ?。


private?int?score;
?
????????public?int?Score
????????{
????????????get?{ return?score; }
????????????set?{
????????????????if?(value >= 0 && value 

二、C#中的字段与属性的区别及属性的作用

public class Employee
{
    //字段
    private string name;
    //属性
    public string Name      
    {
        get { return name; }
        set { name = value; }
    }
}

这段代码中声明了name字段和Name属性,一般来说属性名是变量名的首字母大写
属性的作用是对字段进行赋值时加以限制,因本段代码字段是姓名所以没有限制,下面附一段对年龄赋值加以限制的代码

public class Employee
{
    //字段
    private byte age;
    //属性
    public byte Age      
    {
        get { return age; }
        set {
            if(value >= 18 && value

这段代码对age进行了限制,通过Age属性对age字段赋值,其值只能在18~60才能赋值成功

下面再贴一段调用代码

class TestEmployee
{
    static void Main()
    {
        Employee.NumberOfEmployees = 107;
        Employee e1 = new Employee();
        //错误,name字段为private私有字段
        e1.name = "Claude Vige";
        //正确,Name属性通过set方法对name字段赋值
        e1.Name = "Claude Vige";
        //打印输出e1的姓名,通过Name属性的get方法返回name的值
        System.Console.WriteLine("Employee name: {0}", e1.Name);
    }
}

C#字段和属性的区别

标签:int   修改   ret   this   rap   system   console   prot   没有   

原文地址:https://www.cnblogs.com/newcapecjmc/p/12716085.html


评论


亲,登录后才可以留言!