【发布时间】:2019-06-21 00:51:26
【问题描述】:
如果一个类(或结构)有一个字段,而我们用相同类型的自动属性替换它,考虑到我们不使用反射或任何其他类型的直接或间接元编程?例如
int Integer;
public void Test() {
Console.WriteLine(Integer);
}
如果我将int Integer 更改为int Integer { get; set; },使用它的代码将保持不变。有什么情况需要更改调用代码吗?
关于只读字段和仅获取属性的相同问题。
编辑:我澄清了我的问题。此外,考虑到现有答案,而不是自动属性,问题将是关于 ref 属性:
这个可以换吗
int Integer;
与
int _integer;
ref int Integer => ref _integer
调用代码没有任何变化?
【问题讨论】:
-
您不能将属性传递为
ref。 -
@SLaks:是的。我忘了这件事。虽然,从 c# 7 开始,您可以将 ref 属性作为 ref 传递,但情况会有所不同
-
这里的问题很简单,我的意思是
Comparing class or structure fields and auto properties (or readonly fields and get-only auto properties)我们在比较什么?它们都在一起,类与结构,字段与属性,你可以用它们做什么,以上所有?您是否正在寻找编译时间约束、运行时约束?我感觉这个问题是“我应该使用结构还是类”但是很难说出你真正想要什么信息 -
@TheGeneral:如果我用属性或相反的字段替换字段,我想找到一个需要更改客户端源代码的案例。我想知道这个替代品有多安全。
标签: c# properties ref c#-7.0