是否可以仅在属性的getter或setter上使用Obsolete属性?我希望能够做这样的事情:publicintId{get{return_id;}[Obsolete("Goingforward,thispropertyisreadonly",true)]set{_id=value;}}但显然不会构建。是否有解决方法可以让我将此属性仅应用于setter? 最佳答案 我认为这是不可能的,因为出于某种原因,它已被明确禁止用于Obsolete属性。根据围绕属性目标定义的规则,Obsolete属性似乎没有任何理由在属性get或set访问器
我想在ASP.Net应用程序的回发之间保留一个属性。目前正在这样做:publicintMyIndex{get{return(int)Session[ToString()+"MyIndex"];}}但更喜欢这样的东西:publicintMyIndex{get{return(int)Session[ToString()+#code_that_returns_property_name#];}}省略了Setter,但它只是使用相同的字符串将值推送到Session中。有什么方法可以使用反射,或者其他更好的解决方案吗? 最佳答案 public
有什么方法可以在C#中使用内部setter序列化属性吗?我知道这可能会有问题-但如果有办法-我想知道。示例:[Serializable]publicclassPerson{publicintID{get;internalset;}publicstringName{get;set;}publicintAge{get;set;}}序列化Person类实例的代码:Personperson=newPerson();person.Age=27;person.Name="Patrik";person.ID=1;XmlSerializerserializer=newXmlSerializer(typ
C#、.NET3.5我正在尝试获取一个对象的所有属性,这些属性同时具有实例的getter和setter。我认为应该工作的代码是PropertyInfo[]infos=source.GetType().GetProperties(BindingFlags.Instance|BindingFlags.Public|BindingFlags.SetProperty|BindingFlags.GetProperty);但是,结果包含一个没有setter的属性。为了让您对我的继承结构有一个简单的了解,可能会对此产生影响(尽管我不知道如何影响):publicinterfaceIModel{stri
如何为属性创建公共(public)getter和私有(private)setter?以下是正确的吗?publicStringPassword{set{this._password=value;}}privateStringPassword{get{returnthis._password;}} 最佳答案 是的,即使使用自动属性也是可能的。我经常使用:publicintMyProperty{get;privateset;} 关于c#-在C#中是否可以使用同名的公共(public)gette
在C#6.0中我可以写:publicintProp=>777;但是我想用getter和setter。有没有办法做下一步的事情?publicintProp{get=>propVar;set=>propVar=value;} 最佳答案 首先,这不是lambda,尽管语法相似。它被称为“expression-bodiedmembers”。它们类似于lambda,但仍存在根本区别。显然它们不能像lambda那样捕获局部变量。此外,与lambda不同的是,它们可以通过名称访问:)如果您尝试将表达式主体属性作为委托(delegate)传递,您可
最近学了c#,所以在学写属性的时候,被教成这样:publicstringName{get;set;}汽车属性很棒!但现在我正在尝试做一些更复杂的事情,所以我需要编写一对自定义访问器。privatestring_Name;publicstringName{get{return_Name;}set{_Name=value}}我知道编译器在使用autos时会在其阴暗的深处创建一个私有(private)实例变量,但我被宠坏了,不想让那个私有(private)变量看起来毫无意义。有没有办法在没有私有(private)变量的情况下使用自定义访问器? 最佳答案
给定一个PropertyInfo对象,我如何检查该属性的setter是否公开? 最佳答案 检查您从GetSetMethod返回的内容:MethodInfosetMethod=propInfo.GetSetMethod();if(setMethod==null){//Thesetterdoesn'texistorisn'tpublic.}或者,对Richard'sanswer进行不同的旋转:if(propInfo.CanWrite&&propInfo.GetSetMethod(/*nonPublic*/true).IsPublic){
我已经为Button创建了一个Blend行为。如何将其设置为应用程序中的所有按钮。但是,当我尝试时:我得到了错误Theproperty"Behaviors"doesnothaveanaccessiblesetter. 最佳答案 我遇到了同样的问题,我想出了一个解决方案。我在解决这个问题后发现了这个问题,我发现我的解决方案与Mark的有很多共同之处。但是,这种方法有点不同。主要问题是行为和触发器与特定对象关联,因此您不能对多个不同的关联对象使用同一个行为实例。当您定义行为时,内联XAML会强制执行这种一对一关系。但是,当您尝试在样式中
我有一个可序列化的类,我的类中的一个属性在getter中生成了一个Guid。该属性不实现setter,并在序列化期间被忽略。为什么会这样,我是否总是必须实现一个setter才能序列化我的属性。[Serializable]publicclassExample{[XmlAttribute("id")]publicstringId{get{returnGuid.NewGuid().ToString();}}}我尝试实现一个空的setter,它得到了正确的序列化。[Serializable]publicclassExample{[XmlAttribute("id")]publicstringI