- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
现在(C# 4.0),我们的日志记录方法看起来像
public void Log(string methodName, string messageFormat, params object[] messageParameters)
记录器在其中进行字符串格式化,以便调用者不必放置 String.Format 来创建漂亮的日志消息(如果没有附加日志查看器,则允许记录器跳过字符串格式化)。
对于 C# 5.0,我想通过使用新的 CallerMemberName 属性来摆脱 methodName 参数,但我不知道如何将其与“params”关键字结合使用。有办法做到这一点吗?
最佳答案
你可以这样做:
protected static object[] Args(params object[] args)
{
return args;
}
protected void Log(string message, object[] args = null, [CallerMemberName] string method = "")
{
// Log
}
要使用日志,请执行以下操作:
Log("My formatted message a1 = {0}, a2 = {2}", Args(10, "Nice"));
关于c# - 结合 CallerMemberName 与参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14355600/
我正在使用 C#(.NET 4.5、VS 2013)生成一个序列化程序,我正在使用一个属性来控制序列化元数据,例如用于存储成员以供读取和写入的名称。因为我不想每次都写出成员名称作为属性的参数,所以我尝
我有以下日志方法(用于单元测试项目): public static void WriteLogFile(T obj, [System.Runtime.CompilerServices.
我有一个面向 Windows Phone 7.1+ 和 Windows 应用商店应用程序(适用于 WinRT)的可移植库,它使用 .net 4.5 框架。 我想在其中使用新的 [CallerMembe
现在(C# 4.0),我们的日志记录方法看起来像 public void Log(string methodName, string messageFormat, params object[] me
我正在浏览大约 700K 行代码。大量的接口(interface)实现和DI使用。我试图找出从哪里调用特定方法,因此我尝试使用 [CallerMemberName]。 我在谷歌等上看到的所有例子都是这
使用CallerMemberName/CallerFilePathAttribute/CallerLineNumber属性如何影响应用程序的性能?这是在应用程序中编译的东西,还是相关反射的东西,还是其
我有一个接受dynamic 参数的方法,还有一个不同参数的[CallerMemberName]。只要动态对象也在参数中,就不会填充 [CallerMemberName] 参数。 这是 CallerMe
有没有办法在调用方方法中获取变量/参数的原始名称?在某种程度上,它就像 [CallerMemberName]属性,但对于变量/参数。 更新 2018.02: 这个问题与这些问题类似:1 , 2和 3
我正在尝试在我的新 WPF 4.5 CompositeWPF (Prism) 项目中实现日志记录功能。这需要我在我的代码中实现 ILoggerFacade。该接口(interface)只实现了1个方法
新的 C# 5.0 版本引入了一些东西来摆脱 INotifyPropertyChanged 实现中的“魔法字符串”,例如: OnPropertyChanged("CustomerName"); 现在可
我刚刚安装了 Visual Studio 2012,因此我可以利用更好的方法通过 Silverlight 实现 MVVM。 我想做的第一件事是开始使用 [CallerMemberName] 属性,这样
有什么区别以及对代码的影响? 关于性能和限制,什么更适合? 新属性: - [调用文件路径属性] - [CallerMemberName] - [来电号码] 现在它们在 .NET 4 中也可用(它很容易
有好文章推荐different ways for implementing INotifyPropertyChanged . 考虑以下基本实现: class BasicClass : INotifyP
我正在尝试实现与提升属性一起使用的 CallerMemberName。我试图在 vb 中执行此操作,但在 system.runtime.compilerservices 中找不到此接口(interfa
我在类的 INotifyPropertyChanged 实现中使用了 CallerMemberName 属性,如 MSDN 中所述如下: public event PropertyChange
快速背景:尝试创建一个方法,该方法将根据调用它的方法返回预定义的字符串。 (有点掩饰但足够接近)。 我打算使用 [ CallerMemberName ] 属性,但我的问题是: => 我是否需要将 Me
如何CallerMemberName实现了吗? 我明白它的作用 - 它允许我们在代码中保留魔法字符串 - 但它应该用于 nameof 吗?什么更高效? 有什么区别/CallerMemberName 究
我正在尝试通过 BCL 可移植包在 .NET 4.0 中使用 CallerMemberName 属性。它总是返回一个空字符串而不是成员名称。我做错了什么? public partial class F
因此,.NET 4.5 引入了 CallerMemberNameAttribute,对于任何使用 WPF 并实现 INotifyPropertyChanged 的人来说,这似乎是天赐之物 - 我的问题
我是一名优秀的程序员,十分优秀!