불변의 유형에 대한 const 멤버를 만드는 방법은 무엇입니까?
-
06-09-2019 - |
문제
다음과 같은 불변의 유형이있는 경우 :
struct Point3
{
}
그리고 원산지와 같은 내부의 멤버 :
public static const Point3 Origin = new Point3 (0,0,0);
사용하는 경우 :
new Point3 (0,0,0)
?
유형을 변경할 수 없기 때문에 왜 본질적으로 같은 원점이 있는가? 우리가 0을 바꾸지 않는 것처럼?
불변의 유형에 대해 같은 것을 달성하는 방법은 무엇입니까?
해결책
public static readonly Point3 Origin = new Point3(0,0,0);
다른 팁
앤드류가 언급했듯이, 당신은 사용할 수 없습니다 const
이를 위해서는 컴파일 타임 상수가 아니기 때문에.
당신이라면 주목하십시오 ~이다 생성자를 반복적으로 사용하려면 (성능 관점에서) 통화가 더 좋습니다.
new Point3()
~보다
new Point3(0, 0, 0)
컴파일러는 첫 번째 버전이 메모리를 비워 둘 것이라는 것을 알고 있으며 코드를 호출 할 필요가 없습니다.
그러나 나는 제공하는 것과 함께 갈 것입니다 Origin
회원 및 가능한 경우 대신 어디서나 사용하십시오 :)
제휴하지 않습니다 StackOverflow