当前位置: 首页 > news >正文

C# 属性

1.定义属性需要名字和返回值
2.属性分为两块 get块(获取)set块(设置)
3.访问属性和访问字段是一样的

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace _属性
{internal class Student{public string name;public int age;private int id;//定义属性// 使用属性也可以 访问和设置带有权限的数据字段public int Id{// 访问get { return id; }set{// = 值  就是有value来代替的id = value;}}public string Name{get{return name;}set{name = value;}}//只读//public int Age//{//    get//    {//        return age;//    }//}//只写//public int Age//{//    set//    {//        age = value;//    }//}//private string addres;//public string Addres { get => addres; set => addres = value; }//以上方式写法比较复杂  c#提供了一种语法糖 可以简化写法public string Addres { get; set; }//"12345678910" 就是Phone的默认值public string Phone { get; set; } = "12345678910";}
}
static void Main(string[] args)
{
Student stu = new Student();
stu.name = "李四";
//stu.id = 123465;  // 正常访问私有数据是没有权限的
//使用属性
//通过属性设置或访问数据  使用的时候把它当做一个普通的数据成员一样使用 并不是函数调用 
//设置   = 值 调用set
stu.Id = 123456;
// 访问 直接对象名.属性名
Console.WriteLine(stu.Id);stu.Name = "王五";
Console.WriteLine(stu.Name);//stu.Age = 20; //因为是只读的  没有办法设置
//Console.WriteLine(stu.Age);stu.Addres = "河南省";
Console.WriteLine(stu.Addres);
Console.WriteLine(stu.Phone);
}

使用枚举控制字段的取值范围

static void Main(string[] args)
{Dog dog = new Dog("阿黄");//dog.Name = "阿黄";Console.WriteLine(dog.Name);dog.Color = Dog.Ecolor.黑;Console.WriteLine(dog.Color);dog.Color = Dog.Ecolor.黄;
}
 class Dog{public string Name { get; set; }private int age;public Dog(string Name){this.Name = Name;}public int Age { get => age; set => age = value; }//定义一个颜色的枚举Ecolorpublic enum Ecolor{白,黑,黄,灰,花}//三种定义字段方式//public Ecolor color;//public Ecolor Color//{//    get//    {//       return color;//    }//    set//    {//        color = value;//    }//}//同上 public Ecolor Color { get; set; }}
http://www.lryc.cn/news/596378.html

相关文章:

  • XSS(跨站脚本)
  • CPU 密集型 和 I/O 密集型 任务
  • 达梦数据库表字段增加时报错[-2106]:无效的表或视图名,[-2116]:列[IS_REPEAT]已存在
  • 【C++】第十八节—一文万字详解 | map和set的使用
  • 如何搭建appium工具环境?
  • Go的异常处理+文件处理
  • JAVA API (三):从基础爬虫构建到带条件数据提取 —— 详解 URL、正则与爬取策略
  • M3088NL是一款网络滤波器/变压器支持100M和1000M网络环境,适用于高速网络传输场景M3088
  • 在腾讯云上安装gitlab
  • HCIP第一二章笔记整理
  • 网络基础DAY16-MSTP-VRRP
  • 公司内部网址怎么在外网打开?如何让外网访问内网的网站呢?
  • 5G工业路由器如何凭借高性价比助力多行业数字化转型?
  • Hugging Face 模型的缓存和直接下载有什么区别?
  • TI DLP3010光机与相机触发使用指南
  • Android app如果不适配Android 15会怎么样
  • 一款基于 WPF 开源、功能全面的串口调试工具
  • 【Spark征服之路-3.7-Spark-SQL核心编程(六)】
  • Aspose.Cells 应用案例:法国能源企业实现能源数据报告Excel自动化
  • 中国科技信息杂志中国科技信息杂志社中国科技信息编辑部2025年第14期目录
  • stm32 智能小车
  • vue2使用v-viewer实现自动预览
  • S2B2C电子商务模式介绍
  • 【Pytest】从配置到固件的使用指南
  • Vue底层换成啥了?如何更新DOM的?
  • YOLO-实例分割头
  • 大数据量查询计算引发数据库CPU告警问题复盘
  • 静态登录界面
  • vscode,cursor,Trae终端不能使用cnpm、npm、pnpm命令解决方案
  • 类加载过程及双亲委派模型