c# 第30节 类字段与属性
本节内容:
1:字段是什么
2:属性判断字段的安全
3:对属性的解释
1:字段是什么
字段其实在上一节我们就使用过了:再来详细的说他一说
amespace cw
{
public enum gender //public 是为了让所有的类都可以使用
{
男,
女
}
public class Clerk
{ //这就是字段了,那么字段一般 是下划线加变量名 _arg ;;字段是用来存放数据
public string _name;
public gender _gerder;
public int _age;
public void show()
{
Console.WriteLine("{0}是{1},{2}岁。",this._name,this._gerder,this._age); } } ############调用#################
class Program
{
static void Main(string[] args)
{
//要想使用别的类要先实例化
Clerk zs = new Clerk();
zs._name = "张三";
zs._gerder = gender.男;
zs._age = -;
zs.show();
Console.ReadKey();
}
}
} //输出:张三是男,-24岁
2:属性判断字段的安全
看到字段输出 了吗?
张三是男,-24岁
what ? 输出的是-24岁这不如何常理啊!可是我字段就是让存放数据的啊,又不能对判断说能不能放,这可怎么办。。。。。
这时候我们的主人公属性就出来了:那么属性的作用是什么呢?
保护字段,对字段的取值与赋值进行限定。
实例:修改上面字段BUG:
说明:
属性往往被声明在字段在下方,并且将字段私有化。
打个比方就是:属性是男人,主外。而女人主内,并且还要将她私有化。


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace cw
{
public enum gender //public 是为了让所有的类都可以使用
{
男,
女
}
public class Clerk
{ //这就是字段了,那么字段一般 是下划线加变量名 _arg ;;字段是用来存放数据
public string _name;
public gender _gerder;
private int _age;
public int Age
{
get
{
return _age;
}
set
{
if (value < || value > ) value = ;
_age = value;
} } public void show()
{
Console.WriteLine("{0}是{1},{2}岁。",this._name,this._gerder,this.Age); } }
} using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace cw
{
class Program
{
static void Main(string[] args)
{
//要想使用别的类要先实例化
Clerk zs = new Clerk();
zs._name = "张三";
zs._gerder = gender.男;
zs.Age = -;
zs.show();
Console.ReadKey();
}
}
}
请求完整实例
3:对属性的说明
通常我们将get和set称为访问器
get属性访问器用于返回属性值
set 属性访问器用于分配新值 属性又分了4种:
)既读又写,如这个实例;
)只读,只有一个get访问器
)只写,只有一个set访问器
)自动 get ;set
c# 第30节 类字段与属性的更多相关文章
- 你是否有遇到过某个实体类字段(属性)过多的情况,不想每次点的话戳进来(C# 反射)
贴上一段代码: bureaucraticEntities apply = new bureaucraticEntities(); Type tapp= app.GetType(); Type ttmp ...
- 5. Bean Validation声明式验证四大级别:字段、属性、容器元素、类
1024,代码改变世界.本文已被 https://www.yourbatman.cn 收录,里面一并有Spring技术栈.MyBatis.JVM.中间件等小而美的专栏供以免费学习.关注公众号[BAT的 ...
- [.net 面向对象编程基础] (10) 类的成员(字段、属性、方法)
[.net 面向对象编程基础] (10) 类的成员(字段.属性.方法) 前面定义的Person的类,里面的成员包括:字段.属性.方法.事件等,此外,前面说的嵌套类也是类的成员. a.类的成员为分:静态 ...
- C#基础(202)--类定义,字段与属性,自动属性,方法及常见错误
c#类的定义规范 字段与属性的比较: 字段: 字段主要是为类的内部做数据交换交互使用,字段一般是private 字段可以赋值,也可以取值 当字段需要为外部数据提供数据的时候,请将字段封装为属性,而不是 ...
- 尚硅谷面试第一季-11MyBatis中当实体类中的属性名和表中的字段名不一样怎么办
问题: MyBatis中当实体类中的属性名和表中的字段名不一样 ,怎么办 ? 解决方案: 1.写sql语句时起别名 <!-- id属性:必须是接口中方法的方法名 resultType属性:必须是 ...
- Python类总结-字段,方法,属性区别及StaticMethod, Property,私有字段和私有属性
类包含下列 静态属性 动态属性 静态方法 动态方法 class Province: #静态字段--属于类,调用方法类.字段名 memo = "中国23个省之一" #动态字段--属于 ...
- C# 中利用反射机制拷贝类的字段和属性(拷贝一个类对象的所有东西付给另一个类对象,而不是付给引用地址)
from:https://blog.csdn.net/poxiaohai2011/article/details/27555951 //C# 中利用反射机制拷贝类的字段和属性(拷贝一个类对象的所有东西 ...
- python 面向对象类成员(字段 方法 属性)
一.字段 字段包括:普通字段和静态字段,他们在定义和使用中有所区别,而最本质的区别是内存中保存的位置不同, 普通字段属于对象 静态字段属于类 class Province: # 静态字段 countr ...
- C#类的成员(字段、属性、方法)
前面定义的Person的类,里面的成员包括:字段.属性.方法.事件等,此外,前面说的嵌套类也是类的成员. a.类的成员为分:静态成员(static)和非静态成员 b.静态成员用static标识,不标识 ...
随机推荐
- Linux:Apache服务器的搭建
下载安装并启动apache服务 安装apache服务 yum install -y httpd 启动apache服务 systemctl start httpd.service apache服务器的目 ...
- KVM使用总结
目录 一.虚拟化介绍 二.通过kvm安装centos7系统 三.常用操作 虚拟机列表 开关机 导出虚拟机 重命名 挂起&恢复 查看某个虚拟机对应的端口 kvm开机启动 console登陆(失败 ...
- 详解扩展欧几里得算法(扩展GCD)
浅谈扩展欧几里得(扩展GCD)算法 本篇随笔讲解信息学奥林匹克竞赛中数论部分的扩展欧几里得算法.为了更好的阅读本篇随笔,读者最好拥有不低于初中二年级(这是经过慎重考虑所评定的等级)的数学素养.并且已经 ...
- Goldbach`s Conjecture(LightOJ - 1259)【简单数论】【筛法】
Goldbach`s Conjecture(LightOJ - 1259)[简单数论][筛法] 标签: 入门讲座题解 数论 题目描述 Goldbach's conjecture is one of t ...
- C# List<T> 转 DataTable
C# List<T>转DataTable 学习自:博客园 Overview 数据!!个人认为程序就是将数据变着花样的显示它.那么这个时候我们的数据处理和获取就时我们的关键一步,如果你数据都 ...
- 云服务AppId或AppKey和AppSecret生成策略
App key和App Secret App key简称API接口验证序号,是用于验证API接入合法性的.接入哪个网站的API接口,就需要这个网站允许才能够接入,如果简单比喻的话:可以理解成是登陆网站 ...
- Java连载40-参数传递、this关键字
一.对象和引用 1.对象:目前在使用new运算符在堆内存中开辟的内存空间成为对象. 2.引用:是一个变量,不一定是局部变量,好可能是成员变量,引用保存了内存地址,指向了堆内存中对象.所有访问实例的相关 ...
- appium 使用name 定位报错 Locator Strategy 'name' is not supported for this session【appium-desktop】
RF中使用 name定位 报错提示: Locator Strategy 'name' is not supported for this session 解决: 1.打开本地文件 driver.js ...
- 数据防泄漏 | 禁止PrintScreen键
在数据防泄漏软件,通常会禁止 PrintScreen 键,防止通过截屏来将数据保存为图片而导致泄密. 这类软件如果想要实现是比较简单的,但是想要将功能做的强大些,还是需要下功夫的.以前使用过一款数据防 ...
- Flink中Idle停滞流机制(源码分析)
前几天在社区群上,有人问了一个问题 既然上游最小水印会决定窗口触发,那如果我上游其中一条流突然没有了数据,我的窗口还会继续触发吗? 看到这个问题,我蒙了???? 对哈,因为我是选择上游所有流中水印最小 ...