草庐IT

getter-only

全部标签

c#: setter/getter / setter/getter

我在某处看到类似下面的内容,想知道它是什么意思。我知道他们是getter和setter,但是想知道为什么字符串Type是这样定义的。谢谢你帮助我。publicstringType{get;set;} 最佳答案 那些是Auto-ImplementedProperties(简称自动属性)。编译器将自动生成以下简单实现的等价物:privatestring_type;publicstringType{get{return_type;}set{_type=value;}} 关于c#:setter/

c# - 什么时候应该使用 Readonly 和 Get only 属性

在.NET应用程序中,什么时候应该使用“ReadOnly”属性,什么时候应该只使用“Get”。这两者有什么区别。privatereadonlydoubleFuel=0;publicdoubleFuelConsumption{get{returnFuel;}}或privatedoubleFuel=0;publicdoubleFuelConsumption{get{returnFuel;}} 最佳答案 创建一个只有getter的属性会使您的属性对于类外的任何代码都是只读的。但是您可以使用类提供的方法更改值:publicclassFuel

c# - .NET 中的 Getter 和 Setter 声明

这个问题在这里已经有了答案:Whyusegettersandsetters/accessors?(37个答案)关闭9年前。我想知道这些getter和setter声明之间的区别是什么,是否有首选方法(以及为什么)。第一个可以由VisualStudio自动生成。其他人呢?谢谢第一string_myProperty{get;set;}第二string_myProperty;publicstringmyProperty{get{return_myProperty;}set{_myProperty=value;}}第三string_myProperty;publicstringgetMyProp

c# - 为什么无法覆盖 getter-only 属性并添加 setter?

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion为什么不允许使用以下C#代码:publicabstractclassBaseClass{publicabstractintBar{get;}}publicclassConcreteClass:BaseClass{publicoverrideintBar{get{return0;}set{}}}CS0546'ConcreteClass.Bar.set':cannotoverridebecau

c# - 好还是坏的做法?在 getter 中初始化对象

我似乎有一个奇怪的习惯……至少据我的同事说。我们一直在共同致力于一个小项目。我编写类的方式是(简化示例):[Serializable()]publicclassFoo{publicFoo(){}privateBar_bar;publicBarBar{get{if(_bar==null)_bar=newBar();return_bar;}set{_bar=value;}}}所以,基本上,我只在调用getter并且该字段仍然为空时初始化任何字段。我认为这可以通过不初始化任何不在任何地方使用的属性来减少过载。ETA:我这样做的原因是我的类有几个属性返回另一个类的实例,而另一个类又具有包含更多

c# - 如何从 getter 或 setter 调用异步方法?

在C#中从getter或setter调用异步方法的最优雅方法是什么?这里有一些伪代码来帮助解释我自己。asyncTaskMyAsyncMethod(){returnawaitDoSomethingAsync();}publicIEnumerableMyList{get{//callMyAsyncMethod()here}} 最佳答案 没有任何技术理由表明C#中不允许使用async属性。这是一个有目的的设计决定,因为“异步属性”是一种矛盾。属性应该返回当前值;他们不应该启动后台操作。通常,当有人想要一个“异步属性”时,他们真正想要的是

javascript - javascript数组上的getter/setter?

有没有办法在数组上获取/设置行为?我想象这样的事情:vararr=['one','two','three'];var_arr=newArray();for(vari=0;i 最佳答案 使用Proxies,您可以获得所需的行为:var_arr=['one','two','three'];varaccessCount=0;functiondoSomething(){accessCount++;}vararr=newProxy(_arr,{get:function(target,name){doSomething();returntarg

javascript - 构造函数中的 getter/setter

我最近读到一个事实,即可以在JavaScript中定义getter/setter。这似乎非常有用-setter是一种“助手”,它可以在实际设置之前先解析要​​设置的值。例如,我目前有这样的代码:varobj=function(value){vartest=!!value;//'test'hastobeabooleanreturn{gettest(){returntest},settest(value){test=!!value}};};varinstance=newobj(true);此代码始终将value转换为bool值。因此,如果您编写instance.test=0,则instan

javascript - 确定 JavaScript 属性是否定义了 getter 或 setter?

是否有可能,给定一个对象和属性名称来确定该属性是使用getter还是setter定义的,或者它是否完全透明?如果属性上尚未定义getter/setter,我只想定义一个getter/setter。我需要它在WebKit/Firefox中工作。 最佳答案 我认为您正在寻找getOwnPropertyDescriptor? 关于javascript-确定JavaScript属性是否定义了getter或setter?,我们在StackOverflow上找到一个类似的问题:

javascript - 套接字.io 1.x : use WebSockets only?

出于各种原因,我们正在开发一个只能在现代浏览器(IE10+)上运行的Web应用程序。我们实现的功能之一是Socket.io1.x。但是,默认情况下,Socket.io客户端会尝试支持较旧的浏览器,因此它会使用长轮询启动连接,然后将其更新为WebSockets。这是在浪费时间和资源,因为我们确定浏览器支持WS。我找了一圈,只找到thiswikipage然而,这是关于Socket.io0.9的。最终,我找到了thedocumentationforengine.io-client(Socket.io-client基于1.x分支)。这是我编写的代码,似乎可以正常工作。但是,我想知道它是否正确或