0
, 1
또는 5
과 같은 홀수 번호를 쉽게 잃어 버릴 수 있습니다. 나는 저수준의 C 코드를 작성했을 때 이것을 매우 엄격하게 사용했다. XML과 SQL에 관련된 모든 문자열 리터럴에 대해 더 많은 작업을 할 때마다 적어도 문자열 리터럴에 관해서는 코드에 상수를 포함하는 규칙을 종종 위반하는 경우가 있습니다. (저는 여전히 수치 상수에 대해 잘 알고 있습니다.)문자열 상수가 과대 평가 되었습니까?
문자열은 숫자와 같지 않습니다. 지루하고 약간 바보스럽고 (예 : const string NameField = "Name";
) 같은 이름의 컴파일 타임 상수를 만드는 것은 어리석은 짓이며 많은 지역에서 동일한 문자열 리터럴을 반복하는 것이 위험한 것처럼 보이지만 오타가 발생할 가능성은 거의 없습니다. 복사 및 붙여 넣기를 할 때 리팩토링을 할 때 주위의 것들과 관련하여 기능적으로 어떻게 다루어 지는지와 같은 일을하는 것 이상의 이름을 바꾸는 일이 일반적입니다.
그럼, 좋은 XML 직렬 변환기가 없거나 설정하려는 기분이 아니라고 가정 해 봅시다. (당신이 어떤 코드 리뷰에서 또래 집단의 압력에 활을 시도되지 않은 경우)이 어떤 당신이 개인적으로 사용합니다 :
static void Main(string[] args)
{
// ...other code...
XmlNode node = ...;
Console.WriteLine(node["Name"].InnerText);
Console.WriteLine(node["Color"].InnerText);
Console.WriteLine(node["Taste"].InnerText);
// ...other code...
}
나 :
class Fruit
{
private readonly XmlNode xml_node;
public Fruit(XmlNode xml_node)
{
this.xml_node = xml_node;
}
public string Name
{ get { return xml_node["Name"].InnerText; } }
public string Color
{ get { return xml_node["Color"].InnerText; } }
public string Taste
{ get { return xml_node["Taste"].InnerText; } }
}
static void Main(string[] args)
{
// ...other code...
XmlNode node = ...;
Fruit fruit_node = new Fruit(node);
Console.WriteLine(fruit_node.Name);
Console.WriteLine(fruit_node.Color);
Console.WriteLine(fruit_node.Taste);
// ...other code...
}
0은 홀수가 아닙니다. 심지어는 :-) – paxdiablo