वहाँ बनाने संपत्तियों की सी # वाक्यात्मक चीनी रास्ता के बीच कुछ आंतरिक अंतर है:क्या यह सी # में सार्वजनिक चर का उपयोग करना ठीक है अगर यह पढ़ा जाता है?
public string FirstName { get; set; }
और सिर्फ इस तरह सार्वजनिक चर बनाने: और
public string LastName;
मैं पहली बार जिस तरह से पसंद किया जाता है ग्रहण करने के लिए दूसरा दूर रहे। हालांकि, मैं अक्सर देखते हैं केवल पढ़ने के लिए संपत्ति के इस प्रकार प्रयोग किया जा रहा है जो ऊपर दूसरे प्रकार का एक रूप है:
public readonly string InternalCode;
यह एक सबसे अच्छा अभ्यास तरीका केवल पढ़ने के लिए संपत्ति बनाने के लिए है?
using System;
namespace TestProps
{
class Program
{
static void Main(string[] args)
{
Customer customer = new Customer();
customer.FirstName = "Jim";
customer.LastName = "Smith";
customer.Show();
}
}
class Customer
{
public string FirstName { get; set; } //prefered
public string LastName; //avoid
public readonly string InternalCode; //???
public Customer()
{
InternalCode = "234729834723984";
}
public void Show()
{
Console.WriteLine("{0}, {1} ({2})", LastName, FirstName, InternalCode);
Console.ReadLine();
}
}
}
वह आलेख सीधे मेरे प्रश्न को संबोधित करने वाले दो पृष्ठ थे, धन्यवाद! मैं इससे समझता हूं कि जॉन "सार्वजनिक पठनीय बूल इस्वालिद" को भी मंजूरी नहीं देगा; जब तक कि वह अंत में उल्लेख नहीं करता है, यह एक नेस्टेड क्लास –
में है, हम में से उन लोगों के लिए सिर्फ एक उत्तर की तलाश है, एक लंबा लेख नहीं, क्या आप यहां एक स्पूइलर अलर्ट जोड़ सकते हैं और हमें हाँ या कोई जवाब नहीं दे सकते? – DOK
स्कीट आलेख वास्तव में कुछ अपवाद बनाता है, जिनमें से एक इस प्रश्न पर लागू किया जा सकता है। लेख के मुताबिक, "मैं स्थिर पाठक क्षेत्रों जैसे स्ट्रिंग। लक्षण" के लिए एक छोटा अपवाद दूंगा। यह प्रश्न संशोधित किया जा सकता था और उसी लाइन पर कन्स्ट्रक्टर से असाइनमेंट को स्थानांतरित करके सार्वजनिक स्थिर रीडोनली स्ट्रिंग InternalCode = "234729834723984" होगा; इस प्रकार, यह स्कीट वर्णित की तरह एक "स्थिर पाठक क्षेत्र" होगा। – John