这个问题在这里已经有了答案:关闭13年前。PossibleDuplicate:PropertiesvsMethods您可以在方法中键入一些代码,也可以在属性中键入。例如,我有一个属性名称。当类名更改时,我想从数据库中获取一些数据并更改对象的状态。我可以添加此代码来设置我的部分属性(property)。其他解决方案是将设置部分更改为私有(private)并添加名为SetName的方法,并在此方法中添加我的代码。那么有什么区别呢?什么时候将一些代码放入getter/setter是不好的,什么时候创建自己的方法来更改我的属性和类的其他部分?
我是C#的新手,我认为属性是一件很棒的事情。太棒了,事实上,我看不出使用字段有任何真正的优势。即使对于私有(private)字段,属性提供的灵active和模块化似乎充其量可以让您省去严重的麻烦,最坏的情况是根本没有任何效果。我能看到的字段的唯一优点是您可以内联初始化它们。但大多数时候,无论如何,你都想在构造函数中初始化它们。如果您不使用内联初始化,是否有任何理由不一直使用属性?编辑:有些人提出需要用字段备份属性(显式或自动)。让我澄清一下我的问题:是否有任何理由使用字段除了备份属性?即,是否有任何时候SomeTypesomeField;优于SomeTypeSomeProperty{g
我是C#的新手,我认为属性是一件很棒的事情。太棒了,事实上,我看不出使用字段有任何真正的优势。即使对于私有(private)字段,属性提供的灵active和模块化似乎充其量可以让您省去严重的麻烦,最坏的情况是根本没有任何效果。我能看到的字段的唯一优点是您可以内联初始化它们。但大多数时候,无论如何,你都想在构造函数中初始化它们。如果您不使用内联初始化,是否有任何理由不一直使用属性?编辑:有些人提出需要用字段备份属性(显式或自动)。让我澄清一下我的问题:是否有任何理由使用字段除了备份属性?即,是否有任何时候SomeTypesomeField;优于SomeTypeSomeProperty{g
我只使用和学习了基类的虚方法,对用作的虚属性一无所知classA{publicvirtualICollectionprop{get;set;}}谁能告诉我这是什么意思? 最佳答案 publicvirtualICollectionProp{get;set;}几乎直接翻译成:privateICollectionm_Prop;publicvirtualICollectionget_Prop(){returnm_Prop;}publicvirtualvoidset_Prop(ICollectionvalue){m_Prop=value;}因
我只使用和学习了基类的虚方法,对用作的虚属性一无所知classA{publicvirtualICollectionprop{get;set;}}谁能告诉我这是什么意思? 最佳答案 publicvirtualICollectionProp{get;set;}几乎直接翻译成:privateICollectionm_Prop;publicvirtualICollectionget_Prop(){returnm_Prop;}publicvirtualvoidset_Prop(ICollectionvalue){m_Prop=value;}因
当我在其中时,我想通过反射获取属性名称。可能吗?我有这样的代码:publicCarTypeCar{get{return(Wheel)this["Wheel"];}set{this["Wheel"]=value;}}因为我需要更多这样的属性,所以我想做这样的事情:publicCarTypeCar{get{return(Wheel)this[GetThisPropertyName()];}set{this[GetThisPropertyName()]=value;}} 最佳答案 由于属性实际上只是方法,您可以执行此操作并清理返回的get
当我在其中时,我想通过反射获取属性名称。可能吗?我有这样的代码:publicCarTypeCar{get{return(Wheel)this["Wheel"];}set{this["Wheel"]=value;}}因为我需要更多这样的属性,所以我想做这样的事情:publicCarTypeCar{get{return(Wheel)this[GetThisPropertyName()];}set{this[GetThisPropertyName()]=value;}} 最佳答案 由于属性实际上只是方法,您可以执行此操作并清理返回的get
项目场景:小程序问题描述在使用vant-weapp的DropdownMenu下拉菜单组件时,点击组件后出现以下警告信息[Component]property"icon"of"miniprogram_npm/@vant/weapp/cell/index"receivedtype-uncompatiblevalue:expectedbutgetnullvalue.Useemptystringinstead.原因分析:可以看到dropdown组件中使用了cell组件,而cell组件的属性icon为String类型在上面的数据定义中,并没有传入icon,导致icon为undifinedPage({da
我试图在一个简单的静态类中遍历一些静态属性,以便用它们的值填充一个组合框,但我遇到了困难。这是简单的类:publicstaticMyStaticClass(){publicstaticstringproperty1="NumberOne";publicstaticstringproperty2="NumberTwo";publicstaticstringproperty3="NumberThree";}...以及尝试检索值的代码:TypemyType=typeof(MyStaticClass);PropertyInfo[]properties=myType.GetProperties(
我试图在一个简单的静态类中遍历一些静态属性,以便用它们的值填充一个组合框,但我遇到了困难。这是简单的类:publicstaticMyStaticClass(){publicstaticstringproperty1="NumberOne";publicstaticstringproperty2="NumberTwo";publicstaticstringproperty3="NumberThree";}...以及尝试检索值的代码:TypemyType=typeof(MyStaticClass);PropertyInfo[]properties=myType.GetProperties(