Tag: 属性

私有类变量的字段与属性

对于私有类变量,哪一个更受欢迎? 如果你有一个像int limit这样的属性,你希望它是: int Limit {get; set;} 并在类中使用它,如下所示: this.Limit 是否有理由使用它或不使用它? 可能出于性能原因? 我想知道这是不是一个好习惯。

使用标准.NET Framework的AOP属性的基本实现

可能重复: C#wrap方法通过属性 我想实现这样的function: [Atomic] public void Foo() { /* foo logic */ } 其中[Atomic]属性是一个属性,它在事务范围内包装函数逻辑: using(var scope = new TransactionScope()) { /* foo logic */ scope.Complete(); } 怎么写这样的属性? 我之前已经问过基本相同的问题 ,我知道这可以使用AOP完成,但我没有提到我正在寻找一些最简单的概念certificate实现或有用的文章,可以帮助我使用纯.NET编写框架(我想使用RealProxy和MarshalByRefObject类型,我读过这些类型的浏览相关问题)。 我需要完全解决这个显示的例子。 这似乎是一个基本的东西,所以我想学习如何从头开始。 它现在不需要安全和灵活。

如何在运行时向方法添加属性?

我们使用Microsoft.Practices.CompositeUI.EventBroker来处理我们的应用程序中的事件订阅和发布。 可行的方法是向事件添加属性,指定主题名称,如下所示: [EventPublication(“example”, PublicationScope.Global)] public event EventHandler Example; 然后你用你的处理程序添加另一个属性,使用相同的主题名称,如下所示: [EventSubscription(“example”, ThreadOption.Publisher)] public void OnExample(object sender, EventArgs e) { … } 然后将对象传递给EventInspector,它匹配所有内容。 我们需要对此进行调试,因此我们尝试创建一个订阅所有事件的调试类。 我可以获得所有主题名称的列表……但仅限于运行时。 因此,在将调试对象传递给EventInspector之前,我需要能够在运行时向方法添加属性。 如何在运行时向方法添加属性?

访问C#属性名称或属性

我想从类实例自动生成SQL语句。 该方法应该看起来像Update(object []属性,对象PrimaryKeyProperty)。 该方法是实例的一部分(类,基本方法 – 任何子代的通用)。 属性数组是一个类属性数组,将在update语句中使用。 属性名称等于表字段名称。 问题是我无法获得属性名称。 有没有选项在类实例中获取属性名称? 样品: public class MyClass { public int iMyProperty { get; set; } public string cMyProperty2 { get; set; } { main() { MyClass _main = new MyClass(); _main.iMyProperty.*PropertyName* // should return string “iMyProperty” { 我知道PropertyInfo,但我不知道从GetProperties()数组中获取属性的ID。 有什么建议吗?

WPF依赖属性

我很难在WPF中了解依赖属性,也许是因为我正在寻找的用例是非常具体的,没有很好的文档记录。 我有一个看起来像这样的自定义控件(请忽略所有可怕的代码,这是暂时的!): 我在我的主窗口中调用它,如下所示: 并且控件内的代码如下: using System; using System.Windows; using System.Windows.Controls; namespace HydroAccessory.Controls { public partial class FillGraph : UserControl { private float percentage; public float Percentage { get { return percentage; } set { percentage = value; PercentageTB.Text = String.Format(“Fill Percentage: {0}”, percentage.ToString() + “%”); } } public FillGraph() { InitializeComponent(); } } } 我希望能够做的就是在主窗口中的自定义控件调用中说: […]

修改成员时不调用C#对象设置器

我有以下包装类: public class Wrapper { public int Member; } 在另一个课程中,我有以下内容: public class ContainerClass { private Wrapper data; public Wrapper Property { get { return data; } set { data = value; } } public void Foo() { Property.Member = 42; } } 在Foo()修改Property.Member ,没有任何反应(跳过setter)。 但是,我仍然可以执行以下操作,例如: public void Foo() { Property = Property; } 并输入所需的setter。 所以我的问题是,为什么不修改对象属性的成员调用该属性的setter?

当前上下文中不存在属性

我收到以下错误: “当前背景下不存在财产”。 我检查了StackOverflow的常见原因,但我没有提出任何错误。 (至少没有一个我理解^^)。 我正在使用Microsoft Visual Studio 2015 这是我的代码: namespace ConsoleApplication5 { public class Voiture { public int Vitesse { get; set; } public Voiture() { Vitesse = 5; } public string Marque { get { throw new System.NotImplementedException(); } set { } } } } 在另一个文件中 namespace ConsoleApplication5 { public class Audi : Voiture […]

C# – 自动属性VS 3.0之前的属性

对不起,如果我的问题几乎是关于代码风格的问题,但对于简单的情况,哪种情况更好? 情况1: private static int number = 1; public static int Number { get { return number; } set { number = value; } } 案例2: public static int Number { get; set; } 我认为案例2更好,因为当你的class级中有很多属性时,它们不会占用太多空间,文件大小也会减少。

如何在ISO C ++中定义或实现C#属性?

如何在ISO C ++中定义或实现C#属性? 假设遵循C#代码: int _id; int ID { get { return _id; } set { _id = value; } } 我知道C#在编译时将get和set行转换为getXXX和setXXX方法。 在C ++中,程序员通常手动定义这两个函数,如: int _id; int getID() { return _id; } void setID(int newID) { _id = newID; } 但是,我希望拥有C#语法或类似的东西,以便具有简单的可用性。 在C#中,我们可以使用以下属性: ID = 10; // calling set function int CurrentID = ID; // calling […]

序列化/反序列化和非默认构造函数

考虑这个课程: [Persistable] public sealed class FileMoveTask : TaskBase { [PersistMember] public string SourceFilePath { get; private set;} [PersistMember] public string DestFilePath { get; private set;} public FileMoveTask(string srcpath, string dstpath) { this.SourceFilePath = srcpath; this.DestFilePath = dstpath; //possibly other IMPORTANT initializations } //code } 我可以通过使用属性PersistMember序列化所有成员来持久保存此类的对象。 但是在反序列化过程中我遇到了一些问题(设计问题)。 特别是,问题在于构造函数中可能存在的“可能的其他重要初始化” ,并且程序员可能决定不会使少数成员可持久化(即不PersistMember添加PersistMember )可能因为这没有意义。 在这种情况下,我如何将对象反序列化为完全相同的状态? 我想,这个问题归结为:我如何调用非默认构造函数,将相同的参数传递给它,之前传递过? 有没有办法做到这一点? 我们可以制定一些可以由编译器强制执行的规则(一种元编程)吗? 构造函数属性可以在这帮助吗?