首页 > 编程语言 >C#的GET/SET

C#的GET/SET

时间:2022-11-08 20:45:07浏览次数:26  
标签:SET get C# age GET private int set public

 // 类

public class Person
{
// 字段
private string name;  private int age;  private string sex;
// 属性
public string Name
{
get { return name; }
set { sex = value; }
}
public int Age
{
get { return age; }
set { age = value; }
}
public string Sex
{
get { return sex; }
set { sex = value; }
}
}

字段和属性,都可以叫做是成员变量{ name、age、sex、Name、Age、Sex}

1为什么区分字段和属性?

字段一般用在类的内部使用,属性一般供外部类访问。按照类的设计原则,字段都是private的,只能在类的内部使用,如果是public的,那么外部类谁都有可能访问,对字段进行破坏性的修改,这是我们不希望看到的,所以字段一定是private的。

《属性想当于是给字段加了一个保护套,如果想读这个字段的值,属性里面走的一定是get{},如果想给字段赋值,属性里一定走的是set{},那么程序员可以在get{}和set{}中增加一些限制,验证要赋值的内容,或者让某个字段只能读不能赋值(对应该字段的的属性只让它有get{},不写set{})。对于外部使用者来说只能够使用它,不能控制它,如何控制操作是由类自身决定的(或者说是由程序员决定的,嘿嘿》

字段值可以用作ref、out参数,而属性不能。

2对于只是限定读取和访问权限,而无复杂逻辑条件判断的,可以使用一些简化的方式。

 // 写法一

class Test
{
private int age;
public int Age
{
get { return age; }
set { age = value; }
}
}
// 写法二
class Test
{
private int age;
public int Age
{
get => age;
set => age = value;
}
}

// 写法三

 class Test

{
public int Age
{ get; set; }
//或者直接省略
}

3属性是对字段的一种保护和制约

private int a;
public int index
{
get
{ return a; }
set                       //当对index赋值,这个值能否传给a,是有条件限制的
{
If (value>0)
a=value;
else
a=0;
}
}

 

标签:SET,get,C#,age,GET,private,int,set,public
From: https://www.cnblogs.com/ZBO123/p/16871113.html

相关文章

  • CF se
    做过的就不写了。110419:1752C线段树板子,19:50写完20:53617E莫队板子,CQOI刚写过,懒得写了。438D草,这个博客两年前写过的题解。21:0721:38AC,神奇容斥题。......
  • Qing_HeDeMacBookAIr食用指北
    为啥都写这个。本来想卷题的但是看到\(\text{SMTwy}\)博客里一句话:“我本来感觉没有必要,但是\(\text{xxx}\)跟我说:要给你来个\(\text{360、2345}\)大礼包咋整”......
  • 【单片机/嵌入式】【Keil5警告】Duplicate input file ...【文件重复包含】
    【平台】GD32F450ZGT6【警告类型】.\Objects\GD32F450.axf:Warning:L6304W:Duplicateinputfile.\objects\exti_1.oignored.【问题描述】 【解决方法】删去重......
  • AcWing 896.最长上升子序列Ⅱ
    题目链接:http://www.acwing.com/problem/content/898/不像是dp,更像是贪心相对于数据小的上升子序列问题,此题用过的二分后的时间复杂度为nlogn。在本题中首先需要明白:......
  • JavaScript实现滚动条滚动给div加颜色
    实现原理当滚动的距离大于某一个元素到页面顶部的距离时候,给元素设置实现步骤1.获取某一个元素到页面顶部的距离2.如果距离大于零则给div加上颜色,如果等于0,即归位的时......
  • ABC229G
    首先显然能想到二分,随后想想怎么判定。这里我卡住了(看了题解发现是一个常用的技巧。先把所有\(Y\)的位置存下来,记为数组\(A\),记\(B_i=A_i-i\),那么发现交换就相当于......
  • etcd的db文件过大
    背景:我们公司线上环境打算采用apisix来做k8s的路由,apisix集群因为用到etcd,整个配置搭建了一个月了,没有引流量,打算观察一段时间,今天发现了个问题,我们的zabbix监控报警一台et......
  • 【HDLBits刷题笔记】17 Verification: Wrting Testbenches&CS450
    Tb/clock这题要求给dut模块一个时钟。moduletop_module();regclk;always#5clk=~clk;initialbeginclk=0;enddutu0(clk);......
  • python3-pycharm TAB键转换为4个空格
     pycharm默认Tab为4个空格1【File】→【setting】编辑2.【Editor】→【CodeStyle】→【Python】编辑二、pycharm空格显示【General】→【Appearance】→Showwhitespace......
  • SKV: A SmartNIC-Offloaded Distributed Key-Value Store
    abstract使用DPU加速Redis的异步复制,提高吞吐14%,降低时延21%。introduction由于redis内存读写很快,传统网络协议栈成为性能瓶颈,因此使用RDMA可以降低通信压力。但是使用R......