C# 详细讲解代码 get; set; 和public DateTime time get; set; 的意思?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# 详细讲解代码 get; set; 和public DateTime time get; set; 的意思?相关的知识,希望对你有一定的参考价值。
1、属性的语法set;get;是属性修饰符,也是C#2.0提供的语法糖,
在C#1.0版本中,属性是需要构造的。
如:
private int _ID;
public int ID
set_ID = value;
getreturn _ID;
上面的写法和
public int IDset;get; 效果是一样的。
2、属性的意义。
特性提供功能强大的方法,用以将元数据或声明信息与代码(程序集、类型、方法、属性等)相关联。特性与程序实体关联后,即可在运行时使用名为“反射”的技术查询特性。
详见:https://msdn.microsoft.com/zh-cn/library/z0w1kczw(v=vs.140).aspx
通俗的说,
public class Car
public int CarNumset;get;
public string Ownerset;get;
public DateTime BuyTimeset;get;
上面这个代码定义了一辆车, 车有3个属性, 分别是carnum车牌号,owner 车主,buytime 购买时间,(DateTime是C#里的时间类型)
每次你调用的时候,
var mycar = new Car(); 即可实例化一个车, 车子的三个属性你都可以进行操作。 参考技术A 在面向对象语言中(C++,java,C#等)get和set是对象属性特有的两个方法,属性是对字段的封装,是为了程序数据的安全性考虑的。
简单来说,字段有两种操作权限,就是获取和修改,就分别对应的是get和set方法了,可以通过制定get和set方法来限定字段的访问权限。
在C#中,有个蛋疼的称呼,叫做访问器。
get 访问器
get 访问器体与方法体相似。它必须返回属性类型的值。执行 get 访问器相当于读取字段的值。
public int IDget;set
然后在实现里面
get
return 200;
就得到了ID为200.
set 访问器
set 访问器与返回 void 的方法类似。它使用称为 value 的隐式参数,此参数的类型是属性的类型。
也就说你声明什么类型,就要传递什么类型的参数
public int IDget;set
让需要调用时,直接使用:
test.ID =200;
这样你就把200设置成了你传递的ID。
为 C# 中可变的属性设置默认值 [重复]
【中文标题】为 C# 中可变的属性设置默认值 [重复]【英文标题】:Setting a default value for property that is mutable in C# [duplicate] 【发布时间】:2016-02-17 16:32:44 【问题描述】:我有财产
public int active get; set;
我的数据库中的默认值为 1。如果未另行指定,我希望此属性默认为 1
public partial class test
public int Id get; set;
public string test1 get; set;
public int active get; set;
我看到在 c# 6 中你可以做到
public int active get; set; = 1
但我没有使用 c# 6 :(。 谢谢你的建议。 (对于 c#/OOP 来说非常非常新)
【问题讨论】:
但我没有使用 c# 吗?你的意思是说:但我没有使用 c# 6.0? 无论如何,如果您是6.0之前的版本,请使用构造函数进行初始化。 所以添加一个default constructor 并在那里初始化它。顺便说一句,你真的想使用partial
类吗?如果你需要一个分部类,那是因为一些类定义是自动生成的。是这样吗?如果不是,使用partial
是一种滥用,可能表明一个类承担了太多责任(并且已经变得太大)。对于手写代码,部分定义类只会掩盖代码的意图。
已编辑,未使用 c# 6,抱歉
【参考方案1】:
只需在构造函数中设置即可:
public partial class Test
public int Id get; set;
public string Test1 get; set;
public int Active get; set;
public Test()
Active = 1;
我认为这比仅仅为了默认而避免自动实现的属性更简单......
【讨论】:
【参考方案2】:在构造函数中初始化它:
public partial class Test
public int Active get; set;
public Test()
Active = 1;
【讨论】:
【参考方案3】:// option 1: private member
public partial class test
private int _active = 1;
public int Id get; set;
public string test1 get; set;
public int active
get return _active;
set _active = value;
// option 2: initialize in constructor
public partial class test
public test()
active = 1;
public int Id get; set;
public string test1 get; set;
public int active get; set;
【讨论】:
太棒了,现在我看到了get set的实用程序,几天前就开始使用c#了 它变得更好了。属性非常强大。你可以做的不仅仅是一个简单的get; set;
,甚至不仅仅是一个简单的作业,【参考方案4】:
在 C#6 之前的版本中执行此操作的默认方法要冗长得多,但它只是语法 - 这是等效的:
public class Foo
private int _bar = 1;
public int Bar
get return _bar;
set _bar = value;
【讨论】:
非常感谢,不胜感激以上是关于C# 详细讲解代码 get; set; 和public DateTime time get; set; 的意思?的主要内容,如果未能解决你的问题,请参考以下文章