在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 **中),但它已經很多年了。改變有點痛苦。 –