मैं बस सोच रहा था कि सी # 6 से नाम कैसे आते हैं, गैर स्थैतिक संपत्ति तक पहुंच सकते हैं जैसे कि यह स्थैतिक था। यहाँ एक उदाहरणनाम का नाम कैसे काम करता है?
public class TestClass
{
public string Name { get; set; }
}
public class Test
{
public Test()
{
string name = nameof(TestClass.Name); // whats so speciall about nameof
//string name2 = TestClass.Name; this won't compile obviously,
}
}
में और अधिक हो सकता है! के लिए क्रम प्रयोजनों
typeOf
या बजाय.GetType()
का उपयोग करें।पढ़ें इसके बारे में कुछ खास नहीं है। यह संकलन समय पर होता है, रनटाइम पर नहीं। और कंपाइलर को किसी नाम के सदस्य को स्ट्रिंग अक्षर "नाम" में परिवर्तित करने के लिए कोई समस्या नहीं है। केवल एक चीज जो इसके बारे में अजीब बात है, इसने भाषा में जोड़े जाने के लिए 6 संस्करण क्यों लिया :) –
आपका क्या मतलब है "नाम का नाम कैसे काम करता है?" क्यों _wouldn't_ यह काम नहीं करता? क्या आपके पास एक ही तरह का प्रश्न है, उदाहरण के लिए 'के लिए', 'स्विच', 'वापसी', आदि? उन कामों में से _any_ कैसे करते हैं? संकलक उन्हें समझने के लिए लिखा गया है और जब यह उन्हें देखता है तो सही संकलित कोड उत्पन्न करता है। क्या आप एक स्पष्टीकरण की तलाश कर रहे हैं कि कंपेलर कैसे काम करते हैं? फिर, "बहुत व्यापक"। यदि नहीं, तो मैं वास्तव में नहीं समझता कि आप क्या पूछ रहे हैं। कृपया बताएं कि वास्तव में आपको क्या परेशान कर रहा है। –
आपको यहां अपना उत्तर मिल सकता है: http://stackoverflow.com/questions/31695900/what-is-the-purpose-of-nameof –