Tag: 属性

使用lambda函数的列表中对象属性值的总和

我有以下内容: List ,其中包含许多OutputRow对象。 我想知道是否有一种方法可以让我在列表中使用lambda函数来返回列表中每个OutputRow对象上某个propertyX的值的总和。 示例列表: OutputRow.propertyX = 4 OutputRow.propertyX = 6 OutputRow.propertyX = 5 返回15

为什么我的自定义控件的Text属性不会出现在Properties窗口中?

我有一个inheritance自UserControl的用户控件。 它是一个按钮,所以我试图在按钮中创建文本,通过使用Text属性(如真实按钮)进行更改,而不是像_Text那样命名我自己的。 我有以下代码,但它不起作用(即它不会出现在属性窗口中)。 标签的名称是ContentPresenter public override string Text { get { return ContentPresenter.Text; } set { ContentPresenter.Text = value; } }

C#.Net 4.5 PropertyGrid:如何隐藏属性

问题很简单(我希望这有一个简单的解决方案!):我想隐藏(Browsable(false))属性“Element”(在我的PropertyGrid对象中),当它为零时。 public class Question { … public int Element { get; set; } }

带参数的属性

我在VB.NET中遇到了一些奇怪的东西,以前从未注意到…… 我在VB.NET中有一个带有参数属性的类,我希望通过创建VB.NET类的对象而在其他C#类中使用该属性,但是类对象没有显示该属性,任何人都可以告诉我是否可以访问该属性属性转换成C#与否。 如果有,怎么样? 如果不是,CLR是什么意思? 这是我的代码…… Public Property AsString(ByVal name As String) As String Get //Some code End Get Set(ByVal value As String) //Some code End Set End Property 注意:我无法更改VB.NET代码,因为它是编译DLL。 提前致谢

如何使.NET属性仅对某些类型有效

可能重复: 为.NET属性目标指定所需的基类 我想指定我的自定义属性仅对某些类型有效(基于接口或基类)。 像这样: 我怎样才能做到这一点?

道具和完整财产之间的区别是什么?

嗨伙计们下面的两段代码有什么区别吗? 或者顶部只是底部的一个简短forms? public string Name{get;set;} 和 private string _Name; public string Name { get { return _Name; } set { _Name=value; } }

访问自定义属性的值

我有这个自定义属性: [AttributeUsage(AttributeTargets.Method, AllowMultiple=false, Inherited = true)] class MethodTestingAttibute : Attribute { public string Value{ get; private set; } public MethodTestingAttibute (string value) { this.Value= value; } } 要像这样使用: [MethodTestingAttibute(“2”)] public int m1() {return 3; } 而我的理念是采用MethodTestingAttibute的“2”值 object result = method.Invoke(obj, new Type[] {}); // here i get the return 现在我想将此结果与Method TestingAttibute的值进行比较。 我怎么能这样做? 我试图走上这条路,但没有成功:method.GetCustomAttributes(typeof(MethodTestAttibute),true)[0] … 什么是正确访问Custoum属性字段?

仅在特定类型上允许自定义属性

有没有办法强制编译器限制自定义属性的使用仅用于特定属性类型,如int,short,string(所有基本类型)? 类似于AttributeUsageAttribute的ValidOn- AttributeTargets枚举。

将set访问器添加到类中的属性,该类派生自仅具有get访问器的抽象类

我有一个抽象类, AbsClass实现了一个接口, IClass 。 IClass有几个属性,只有Get访问者。 AbsClass将IClass的属性实现为要在从AbsClass派生的类中定义的抽象属性。 因此,从AbsClass派生的所有类也需要通过与Get访问器具有相同的属性来满足IClass 。 但是,在某些情况下,我希望能够从IClass向属性添加set访问器 。 然而,如果我尝试使用set访问器覆盖AbsClass中的抽象属性,我会收到此错误 ConcClassA.Bottom.Set无法覆盖,因为AbsClass.Bottom没有可覆盖的set访问器 请参阅下面的ConcClassA 。 如果我有一个只实现IClass接口但没有inheritance自AbsClass的类,那么我可以添加一个没有问题的set访问器。 请参阅下面的ConcClassB 。 我可以在AbsClass的每个派生中实现IClass,而不是直接为AbsClass实现。 但我从我的设计中知道每个AbsClass也需要一个IClass,所以我宁愿在层次结构中指定更高的值。 public interface IClass { double Top { get; } double Bottom { get; } } abstract class AbsClass:IClass { public abstract double Top { get; } public abstract double Bottom { get; } } class ConcClassA […]

限制对只读属性的方法调用的访问

我有一个类,它定义了一个只读属性,可以有效地公开一个私有字段,如下所示: public class Container { private List _myList; public List MyList { get { return _myList;} } public Container() : base () { _myList = new List(); } // some method that need to access _myList public SomeMethod(int x) { _myList.Add(x); } } 现在消费者不可能直接管理我的属性,所以代码如aContainer.MyList = new List(); 生成编译时错误。 但是,消费者可以完全自由地在他所获得的引用上调用各种方法,因此这是完全有效的代码 Container c = new Container(); Console.WriteLine(c.MyList.Count); […]