在C++中有预定义宏如__FUNCTION__
,编译为一个字符串函数名的宏预定义宏在使用。方法名称
void MyFunc()
{
printf("I'm in %s!", __FUNCTION__); // I'm in MyFunc!
}
有什么C#的相似?我期待的asp.net web表单做到这一点:
public string MyProperty
{
get { return (string)ViewState[__PROPERTY__]; }
set { ViewState[__PROPERTY__] = value; }
}
显然,这并不正常工作(否则我不会问这样的问题),我想知道是否有在C#中那并不是类似的东西不使用反射或使用字符串文字"MyProperty"
有任何负面的性能影响。
这将有希望减少我的错误,但我可以考虑一些其他情况下,这将是有用的。
根据我对C#的经验,您可以使用像#if debug #endif这样的宏。但是,您不能拥有编译时宏的任何东西。 –
'__FUNCTION__' _used to_ compile to a string literal(我认为在** gcc 2.96 **中),但它已经很多年了。改变有点痛苦。 –