jjzjj

Properties

全部标签

c# - 返回用于在 using C# 中使用的变量

我在using语句中返回我在using语句中创建的变量(听起来很有趣):publicDataTablefoo(){using(DataTableproperties=newDataTable()){//dosomethingreturnproperties;}}这会Dispose属性变量吗??这样做之后我仍然收到这个警告:Warning34CA2000:Microsoft.Reliability:Inmethod'test.test',callSystem.IDisposable.Disposeonobject'properties'beforeallreferencestoitare

c# - Get 方法的大小

就代码行而言,对于“获取”的大小是否有任何指导方针或普遍共识?我有一个成员的Get方法,这里的代码很容易增长到30行。我不确定应该在什么时候将其提取到方法中。但后来我只会将其称为GetMyString之类的名称并将值分配给另一个成员并在构造函数中调用它。这样做值得吗?这对SO来说太主观了吗? 最佳答案 dcastro的回答很好,但可以使用一些扩展:没多久就回来了这还没有量化;让我们量化一下。一个属性所花的时间不应超过获取字段所花时间的十倍。它不连接到外部资源(数据库、服务等)那些很慢,因此通常属于第一条规则,但还有第二个方面:失败应

c# - 实现对公众只读但对继承人可写的属性的最佳方法是什么?

如果我有一个我想让继承者写入的属性,但在外部保持只读,那么实现它的首选方法是什么?我通常会选择这样的东西:privateobjectm_myProp;publicobjectMyProp{get{returnm_myProp;}}protectedvoidSetMyProp(objectvalue){m_myProp=value;}有没有更好的办法? 最佳答案 privateobjectm_myProp;publicobjectMyProp{get{returnm_myProp;}protectedset{m_myProp=valu

c# - 自动属性和结构

我想知道以下C#代码:structStructure{publicStructure(inta,intb){PropertyA=a;PropertyB=b;}publicintPropertyA{get;set;}publicintPropertyB{get;set;}}它没有编译错误“'this'对象在其所有字段都分配给之前不能使用”。对于类似的类,它编译没有任何问题。可以通过重构为以下内容使其工作:structStructure{privateint_propertyA;privateint_propertyB;publicStructure(inta,intb){_propert

c# - 如何获取属性名称及其值?

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:C#HowcanIgetthevalueofastringpropertyviaReflection?publicclassmyClass{publicinta{get;set;}publicintb{get;set;}publicintc{get;set;}}publicvoidmyMethod(myClassdata){DictionarymyDict=newDictionary();Typet=data.GetType();foreach(PropertyInfopiint.GetProperties(

c# - 我应该如何在 C# 中使用属性?

我不确定,因为在Java中,getter/setter看起来有点不同,但是编写这些东西的“c#方式”是什么?选项a.)privatestringname;publicstringName{get{returnname;}set{name=value;}}privateinttime;publicintTime{get{returntime;}set{time=value;}}b.)privatestring_name;privateint_time;publicstringname{get{return_name;}set{_name=value;}}publicinttime{get

C# 等效于 C++ 宏并使用 Auto<> 属性

我有一些自动实例化代码,我想将其应用于一个相当大的类中的大约15个属性。代码类似于以下内容,但每个实例的类型不同:protectedComplexType_propertyName;publicComplexTypePropertyName{get{if(_propertyName==null){_propertyName=newComplexType();}return_propertyName;}}要在C++中重复这一点(因为有大约15个实例),我会使用预处理器宏,但我注意到C#不支持它们。我想知道是否有人对如何在C#中干净利落地提出建议? 最佳答案

c# - 这不会破坏拥有只读属性的全部目的吗?

我知道如何使用属性并且我知道它们隐式调用底层get和set访问器,取决于我们是写入还是读取属性。staticvoidMain(string[]args){Aa=newA();(a.b).i=100;}classA{privateB_b=newB();publicBb{get{return_b;}}}classB{publicinti;}什么代码(a.b).i=100;本质上是第一个属性的get访问器返回对对象的引用_b,一旦我们有了这个引用,我们就可以访问_b’s成员并改变他们的值(value)观。因此,在我们的示例中,具有只读属性只能防止外部代码更改引用变量的值_b,但它不会阻止外部

c# - 分页后 TableCell 拆分 : remainder split part loses original cell properties

我有一个关于WPFFlowDocumentTable上的TableCell拆分策略的问题。这是一个简单的代码,可以重现问题:MainWindow.xaml.cs//////InteractionlogicforMainWindow.xaml///publicpartialclassMainWindow:Window{publicMainWindow(){InitializeComponent();vartable=newTable(){BorderThickness=newThickness(1),BorderBrush=Brushes.Black,CellSpacing=0};var

c# - 属性中的单词 "property:"是什么

你能解释一下“property:”这个词是什么意思吗?[property:NotifyParentProperty(true)]publicstringFilename{get;set;} 最佳答案 表示将Attribute应用于属性。在这种特定情况下,它是多余的,可以忽略不计。这种元素定义了AttributeTarget并且在目标可能不明确时最有用,例如目标method和return。VisualStudio还使用AssemblyInfo.cs中的目标assembly生成属性,它是许多项目模板的一部分。更多信息和可能的属性目标列表