Tag: 属性

有没有理由让房产没有吸气剂?

我的经理问我,使用带有二传手的房产是否是一个好习惯,但没有吸气剂。 public class PropertyWrapper { private MyClass _field; public MyClass Property { set { _field = value; } } public string FirstProperty { get { return _field.FirstProperty; } } public string SecondProperty { get { return _field.SecondProperty; } } } 他将使用其他属性来显示私有字段中的属性,由此setter设置。 我的建议是只使用一个私有字段并在构造函数中设置它,在这种情况下可以正常工作。 如果我需要首先拥有一个构造对象(甚至可能使用多态),我仍然会更喜欢Load方法,而不是一个getter-less属性。 但我很感兴趣。 我们都非常关注最佳实践,并尝试确保我们的代码是标准化的。 有没有人有关于无吸气物业的官方文章? 或者更好 – 在.NET Framework本身中这种用法的一个例子?

传递带有变量值的自定义属性作为参数

我创建了一个自定义属性类,它将检查系统安全性,并在出现安全性错误时抛出身份validationexception。 public class EntityChecker: System.Attribute { public EntityChecker(int entityId) { // doing some logic to check if the entityId is allowed to be inserted } } 我想使用这个自定义属性作为实体添加函数的声明,我想将一个变量从函数传递给属性构造函数。 可以这样做吗? [EntityChecker(entityId)] public int AddNewEntity(entityId) { // logic of entity addition }

C#4中会有通用属性吗?

所以 – 如果没有特殊原因没有通用属性, 我想知道 – 也许他们会被实施? 这些对于ASP.NET MVC动作filter来说非常棒。

超越属性和reflection的奇怪效应

我在.NET / Reflection中遇到了一个奇怪的行为,无法找到任何解决方案/解释: class A { public virtual string TestString { get; set; } } class B : A { public override string TestString { get { return “x”; } } } 由于属性只是函数对( get_PropName() , set_PropName() get_PropName() , set_PropName()只覆盖“get”部分应该保留“set”部分,就像它在基类中一样。 这就是如果您尝试实例化B类并为TestString赋值,它会使用A类的实现。 但是如果我在reflection中查看B类的实例化对象会发生什么呢? PropertyInfo propInfo = b.GetType().GetProperty(“TestString”); propInfo.CanRead —> true propInfo.CanWrite —> false(!) 如果我尝试从reflection中调用setter: propInfo.SetValue(“test”, b, null); […]

C#:如何为分部类中的属性设置默认值?

我对C#很新,所以请耐心等待…… 我正在实现一个部分类,并希望添加两个属性,如下所示: public partial class SomeModel { public bool IsSomething { get; set; } public List SomeList { get; set; } … Additional methods using the above data members … } 我想初始化两个数据成员: IsSomething为True , SomeList为new List() 。 通常我会在构造函数中执行它,但是因为它是一个部分类我不想触及构造函数(我应该吗?)。 实现这一目标的最佳方法是什么? 谢谢 PS我在ASP.NET MVC中工作,为某个模型添加function,因此是部分类。

对象的数组属性的NullReferenceException

我有一个类实现如下: class Person { public int ID { get; set; } public string FName { get; set; } public string LName { get; set; } public double[] Fees { get; set; } public Person() { } public Person( int iD, string fName, string lName, double[] fees) { ID = iD; FName = fName; LName = […]

如何使用下拉列表选项创建Public String属性?

是否可以将字符串List附加到String属性,以便用户可以从“属性”窗口中选择其中一个字符串? 我应该实现ICollection或类似的东西?

在C#中的两个窗体之间进行通信

我有两种forms,一种是主要forms,另一种是选项forms。 例如,假设用户点击主窗体上的菜单: Tools -> Options ,这将导致我的选项表单显示。 我的问题是如何将我的选项表单中的数据发送回我的主表单? 我知道我可以使用属性,但我有很多选择,这似乎是一件单调乏味的事。 那么最好的方法是什么?

为什么C#.net中的Expression的Body不能使用int,double或bool类型的属性?

我有一个function: private string GetPropertyName(Expression<Func> f) { if ((f.Body as MemberExpression) != null) { return (f.Body as MemberExpression).Member.Name; } return “”; } 它以这种方式使用: string x1 = GetPropertyName(x => Property1); string x2 = GetPropertyName(x => Property2); string x3 = GetPropertyName(x => Property3); 其中Property1是一个int,Property2是一个字符串,Property3是一个对象…… 仅正确返回类型字符串和对象的Property2和Property3的名称,但Property1的f.Body作为MemberExpression为空… 为什么会这样,我们如何更改代码,以便函数正确返回属性的名称?

迭代具有特定属性的字段

我对C#中的反思很陌生。 我想创建一个可以与我的字段一起使用的特定属性,因此我可以仔细检查它们并检查它们是否已正确初始化,而不是每次都为每个字段编写这些检查。 我认为它看起来像这样: public abstract class BaseClass { public void Awake() { foreach(var s in GetAllFieldsWithAttribute(“ShouldBeInitialized”)) { if (!s) { Debug.LogWarning(“Variable ” + s.FieldName + ” should be initialized!”); enabled = false; } } } } public class ChildClass : BasicClass { [ShouldBeInitialized] public SomeClass someObject; [ShouldBeInitialized] public int? someInteger; } (您可能会注意到我打算使用Unity3d,但在这个问题中没有任何特定的Unity – 或者至少,对我来说似乎是这样)。 这可能吗?