主页
  • 主页
  • 分类
  • 热文
  • 教程
  • 面试
  • 标签
C#

C# 基础

C# 主页
C# 概述
C# 环境
C# 程序结构
C# 基本语法
C# 数据类型
C# 类型转换
C# 变量
C# 常量
C# 运算符
C# 决策结构
C# 循环结构
C# 封装
C# 方法
C# 可空类型
C# 数组
C# 字符串
C# 结构体
C# 枚举
C# 类
C# 继承
C# 多态性
C# 操作符重载
C# 接口
C# 命名空间
C# 预处理
C# 正则表达式
C# 异常
C# 文件与流

C# 高级

C# 属性(Attributes)
C# 反射
C# 属性(Properties)
C# 索引器
C# 委托
C# 事件
C# 集合
C# 泛型
C# 匿名方法
C# 不安全代码
C# 线程

基础

C# 主页
C# 概述
C# 环境
C# 程序结构
C# 基本语法
C# 数据类型
C# 类型转换
C# 变量
C# 常量
C# 运算符
C# 决策结构
C# 循环结构
C# 封装
C# 方法
C# 可空类型
C# 数组
C# 字符串
C# 结构体
C# 枚举
C# 类
C# 继承
C# 多态性
C# 操作符重载
C# 接口
C# 命名空间
C# 预处理
C# 正则表达式
C# 异常
C# 文件与流

高级

C# 属性(Attributes)
C# 反射
C# 属性(Properties)
C# 索引器
C# 委托
C# 事件
C# 集合
C# 泛型
C# 匿名方法
C# 不安全代码
C# 线程

C# 属性(Properties)


上一章 下一章

属性

属性是类、结构和接口的命名成员。类或结构中的成员变量或方法称为字段。属性是对字段的一种扩展,并且使用相同的语法进行访问。它们通过访问器来读取、写入或操作私有字段的值。

属性并不命名存储位置。相反,它们具有访问器来读取、写入或计算其值。

访问器

属性的访问器包含有助于获取(读取或计算)或设置(写入)属性的可执行语句。访问器声明可以包含一个获取访问器、一个设置访问器或两者都有。例如:

// 声明一个类型为 string 的 Code 属性:
public string Code {
   get {
      return code;
   }
   set {
      code = value;
   }
}

// 声明一个类型为 string 的 Name 属性:
public string Name {
   get {
      return name;
   }
   set {
      name = value;
   }
}

// 声明一个类型为 int 的 Age 属性:
public int Age { 
   get {
      return age;
   }
   set {
      age = value;
   }
}

示例

以下示例演示了属性的使用:

using System;
namespace tutorialspoint {
   class Student {
      private string code = "N.A";
      private string name = "not known";
      private int age = 0;
      
      // 声明一个类型为 string 的 Code 属性:
      public string Code {
         get {
            return code;
         }
         set {
            code = value;
         }
      }
      
      // 声明一个类型为 string 的 Name 属性:
      public string Name {
         get {
            return name;
         }
         set {
            name = value;
         }
      }
      
      // 声明一个类型为 int 的 Age 属性:
      public int Age {
         get {
            return age;
         }
         set {
            age = value;
         }
      }
      public override string ToString() {
         return "Code = " + Code + ", Name = " + Name + ", Age = " + Age;
      }
   }
   
   class ExampleDemo {
      public static void Main() {
         // 创建一个新的 Student 对象:
         Student s = new Student();
         
         // 设置学生的 code、name 和 age
         s.Code = "001";
         s.Name = "Zara";
         s.Age = 9;
         Console.WriteLine("Student Info: {0}", s);
         
         // 让我们增加年龄
         s.Age += 1;
         Console.WriteLine("Student Info: {0}", s);
         Console.ReadKey();
      }
   }
}

当上述代码被编译和执行时,它会产生以下结果:

Student Info: Code = 001, Name = Zara, Age = 9
Student Info: Code = 001, Name = Zara, Age = 10

抽象属性

抽象类可以具有抽象属性,该属性应在派生类中实现。下面的程序说明了这一点:

using System;

namespace tutorialspoint {
   public abstract class Person {
      public abstract string Name {
         get;
         set;
      }
      public abstract int Age {
         get;
         set;
      }
   }
   class Student : Person {
      private string code = "N.A";
      private string name = "N.A";
      private int age = 0;
      
      // 声明一个类型为 string 的 Code 属性:
      public string Code {
         get {
            return code;
         }
         set {
            code = value;
         }
      }
      
      // 声明一个类型为 string 的 Name 属性:
      public override string Name {
         get {
            return name;
         }
         set {
            name = value;
         }
      }
      
      // 声明一个类型为 int 的 Age 属性:
      public override int Age {
         get {
            return age;
         }
         set {
            age = value;
         }
      }
      public override string ToString() {
         return "Code = " + Code + ", Name = " + Name + ", Age = " + Age;
      }
   }
   
   class ExampleDemo {
      public static void Main() {
         // 创建一个新的 Student 对象:
         Student s = new Student();
         
         // 设置学生的 code、name 和 age
         s.Code = "001";
         s.Name = "Zara";
         s.Age = 9;
         Console.WriteLine("Student Info:- {0}", s);
         
         // 让我们增加年龄
         s.Age += 1;
         Console.WriteLine("Student Info:- {0}", s);
         Console.ReadKey();
      }
   }
}

当上述代码被编译和执行时,它会产生以下结果:

Student Info: Code = 001, Name = Zara, Age = 9
Student Info: Code = 001, Name = Zara, Age = 10
上一章 下一章
阅读号二维码

关注阅读号

联系二维码

联系我们

© 2024 Yoagoa. All rights reserved.

粤ICP备18007391号

站点地图