값 유형과 같이 작동하는 '날짜'클래스를 작성하고 싶습니다. 예를 들어, 대신 안전하게 속성을 설정하는 복제 방법을 작성하는, Date 클래스는 값으로 전달합니다System.String이 값 형식과 같은 이유는 무엇입니까? (문자열과 같은 값 유형 클래스를 작성하는 방법)
public Date Birthday
{
get { return this.birthday; }
set
{
this.birthday = value.Clone();
} //I want to write this.birthday = value;
//without changing external value when this.Birthday changes
}
나는 선택 System.String 클래스이며, 값처럼 동작하기 때문에 이것이 가능 알고있다. 예를 들면 :
String s1 = "Hello";
String s2 = "Hi";
s1 = s2;
s2="Hello";
Console.WriteLine(s1); //Prints 'Hi'
는 우선이 클래스의 재정의 '='연산자의 작가를 생각했지만, 지금은 '='연산자를 재정의 할 수 없습니다 것을 알고있다. 그래서 그들은 String 클래스를 어떻게 작성합니까?
편집 : String과 같이 값으로 인스턴스를 전달하도록 Date 클래스를 만들고 싶습니다.
String을 사용한 예제가 아무 것도 증명하지 못합니다 ... 결과는 모든 유형, 참조 또는 값에 대해 동일합니다. –
@ 토마스 Levesque - 나는 이것이 틀렸다고 생각합니다. S1과 S2가 클래스이면, 출력은 "Hello"가됩니다. –
@ 토마스 Levesque : 안돼! 나는 그것을 시험한다. 그것은 'Hi'를 인쇄합니다. 및 System.String 클래스 (나는 개체 브라우저에서 찾습니다) ... –