草庐IT

ReadOnly

全部标签

c# - ReadOnly 和 Enabled 之间的主要区别是什么?

在WindowsForms控件,有两个属性:ReadOnly和Enabled。这两个属性有什么区别?我觉得他们的行为方式相同。 最佳答案 正如下面论坛帖子中所说:InthecontextofaTextBox,readonlyallowstheusertosetfocustoandselectandcopythetextbutnotmodifyit.AdisabledTextBoxdoesnotallowanyinteractionwhatsoever.UseReadOnlywhenyouhavedatathatyouwanttheu

c# - ReadOnly 和 Enabled 之间的主要区别是什么?

在WindowsForms控件,有两个属性:ReadOnly和Enabled。这两个属性有什么区别?我觉得他们的行为方式相同。 最佳答案 正如下面论坛帖子中所说:InthecontextofaTextBox,readonlyallowstheusertosetfocustoandselectandcopythetextbutnotmodifyit.AdisabledTextBoxdoesnotallowanyinteractionwhatsoever.UseReadOnlywhenyouhavedatathatyouwanttheu

c# - C# 中的 private const 和 private readonly 变量之间有区别吗?

在C#中使用privateconst变量或privatestaticreadonly变量有区别吗(除了必须分配const一个编译时表达式)?因为它们都是私有(private)的,所以没有与其他库的链接。那会有什么不同吗?例如,它可以产生性能差异吗?实习字符串?有没有类似的? 最佳答案 好吧,您可以在属性中使用常量,因为它们作为编译时存在。您无法预测静态只读变量的值,因为.cctor可以从配置等初始化它。在使用方面,常量被嵌入到调用代码中。这意味着,如果您重新编译一个库dll来更改一个public常量,但不更改消费者,那么消费者仍将使

c# - C# 中的 private const 和 private readonly 变量之间有区别吗?

在C#中使用privateconst变量或privatestaticreadonly变量有区别吗(除了必须分配const一个编译时表达式)?因为它们都是私有(private)的,所以没有与其他库的链接。那会有什么不同吗?例如,它可以产生性能差异吗?实习字符串?有没有类似的? 最佳答案 好吧,您可以在属性中使用常量,因为它们作为编译时存在。您无法预测静态只读变量的值,因为.cctor可以从配置等初始化它。在使用方面,常量被嵌入到调用代码中。这意味着,如果您重新编译一个库dll来更改一个public常量,但不更改消费者,那么消费者仍将使

c# - 为什么属性不能是只读的?

这个问题出现在thisanswer的评论中.无法拥有只读属性被提议作为使用字段而不是属性的潜在原因。例如:classRectangle{privatereadonlyint_width;privatereadonlyint_height;publicRectangle(intwidth,intheight){_width=width;_height=height;}publicintWidth{get{return_width;}}publicintHeight{get{return_height;}}}但为什么你不能这样做呢?publicintWidth{get;readonlyse

c# - 为什么属性不能是只读的?

这个问题出现在thisanswer的评论中.无法拥有只读属性被提议作为使用字段而不是属性的潜在原因。例如:classRectangle{privatereadonlyint_width;privatereadonlyint_height;publicRectangle(intwidth,intheight){_width=width;_height=height;}publicintWidth{get{return_width;}}publicintHeight{get{return_height;}}}但为什么你不能这样做呢?publicintWidth{get;readonlyse

C# 从 get 返回一个只读变量;放;

我发誓我见过这样的一个例子,但是用谷歌搜索了一下却找不到。我有一个类,它引用了一个对象,需要有一个GET;它的方法。我的问题是我不希望任何人能够摆弄它,即我希望他们得到它的只读版本,(注意我需要能够从我的类(class)中改变它)。谢谢 最佳答案 不,没有办法做到这一点。例如,如果您返回List(而且它不是不可变的)然后调用者将能够添加条目。正常的方法是返回一个不可变的包装器,例如ReadOnlyCollection.对于其他可变类型,您可能需要在返回值之前克隆该值。请注意,仅返回不可变接口(interface)View(例如返回I

C# 从 get 返回一个只读变量;放;

我发誓我见过这样的一个例子,但是用谷歌搜索了一下却找不到。我有一个类,它引用了一个对象,需要有一个GET;它的方法。我的问题是我不希望任何人能够摆弄它,即我希望他们得到它的只读版本,(注意我需要能够从我的类(class)中改变它)。谢谢 最佳答案 不,没有办法做到这一点。例如,如果您返回List(而且它不是不可变的)然后调用者将能够添加条目。正常的方法是返回一个不可变的包装器,例如ReadOnlyCollection.对于其他可变类型,您可能需要在返回值之前克隆该值。请注意,仅返回不可变接口(interface)View(例如返回I

c# - 更改了 .NET 4.5 中 string.Empty(或 System.String::Empty)的行为

短版:C#代码typeof(string).GetField("Empty").SetValue(null,"Helloworld!");Console.WriteLine(string.Empty);编译并运行时,给出输出"Helloworld!"在.NET4.0及更早版本下,但提供""在.NET4.5和.NET4.5.1下。如何像这样忽略对字段的写入,或者谁重置该字段?加长版:我从来没有真正理解为什么string.Empty字段(也称为[mscorlib]System.String::Empty)不是const(又名literal),参见“Whyisn'tString.Emptya

c# - 更改了 .NET 4.5 中 string.Empty(或 System.String::Empty)的行为

短版:C#代码typeof(string).GetField("Empty").SetValue(null,"Helloworld!");Console.WriteLine(string.Empty);编译并运行时,给出输出"Helloworld!"在.NET4.0及更早版本下,但提供""在.NET4.5和.NET4.5.1下。如何像这样忽略对字段的写入,或者谁重置该字段?加长版:我从来没有真正理解为什么string.Empty字段(也称为[mscorlib]System.String::Empty)不是const(又名literal),参见“Whyisn'tString.Emptya