114得票1回答
相较于其他实现INotifyPropertyChanged的方法,[CallerMemberName]是否较慢?

有一些好的文章建议采用不同的方法来实现 INotifyPropertyChanged。 考虑以下基本实现:class BasicClass : INotifyPropertyChanged { public event PropertyChangedEventHandler Prop...

24得票2回答
使用.NET 4.5.3中nameof运算符与使用CallerMemberNameAttribute通知属性更改相比,有什么好处吗?

随着.NET 4.5.3的推出,WPF开发人员现在有三种(或更多)方法来通知属性变化的INotifyPropertyChanged接口。基本上,我的问题是:“从.NET 4.5开始引入的两种方法中,哪一种方式更有效地通知属性变化,在WPF中使用时是否有任何好处?” 背景 对于那些不太熟悉这...

23得票3回答
.NET 4.0中的CallerMemberName无法工作

我正在尝试使用.NET 4.0中的CallerMemberName属性,通过BCL可移植性包。但它总是返回一个空字符串,而不是成员名称。我做错了什么?public partial class Form1 : Form { public Form1() { Ini...

18得票5回答
混合使用可选参数和params关键字时无法简单地重载函数

类似于这个问题,我想混合使用可选参数和params关键字,但这显然会产生歧义。不幸的是,创建重载的答案行不通,因为我想利用调用者信息属性,就像这样: public void Info(string message, [CallerMemberName] string memberName...

13得票3回答
在C#中抑制“成员从未赋值”警告

我有下面的代码:ViewPortViewModel _Trochoid; public ViewPortViewModel Trochoid { get { return _Trochoid; } set { this.RaiseAndSetIfChanged(value); ...

13得票4回答
为什么C#的Caller Info属性需要一个默认值?

我刚刚发现了C# 5的Caller Info Attributes(http://msdn.microsoft.com/en-us/library/hh534540.aspx),这似乎是一个非常有用的功能。我已经阅读了一些文档 (http://www.codeproject.com/Tips/...

11得票4回答
如何在C#中使用params关键词和caller Information?

我试图将C# 5.0的Caller Information和C#的params关键字结合起来。目的是为记录框架创建一个包装器,并且我们希望日志记录器能够像String.Format一样格式化文本。在之前的版本中,该方法看起来像这样: void Log( string message, ...