C # : "System.Object"와 "object"의 차이점
C #에서 , 또는 대신 System.Object
코드에서 사용하는을 구석으로 사이에 차이점이 있습니까? 아니면 스타일 문제일까요?object
System.String
string
한 양식이 다른 양식보다 선호되는 이유가 있습니까?
string
의 의미입니다 global::System.String
. 구문 구문 론적 설탕입니다. 이 둘은 거의 모든 경우에 정확히 상호 교환이 가능하며 동일한 코드에는 차이가 없습니다.
개인적으로 변수 이름은 사용하지만 API의 이름은 CLR 유형 이름을 사용합니다. 예를 들면 다음과 같습니다.
public int ReadInt32() // Good, language-neutral
public int ReadInt() // Bad, assumes C# meaning of "int"
(반환은 실제로 이름이 아닙니다. 메타 데이터의 유형으로 인코딩 혼동이 없습니다.)
하나는 사용할 수 있고 다른 하나는 사용할 수있는 곳 (내가 알고있는)은 다음과 가능합니다.
nameof
불법 사용 금지- -type 기본 기본 열거 유형을 지정할 때 별칭 만 사용할 수 있습니다.
수업 유형의 이름입니다으로 System.Object . 객체 유형이 사용하고 키워드로 표시됩니다. 나는 그것이 유산과 관련이 있다고 생각하지만 그것은 단지 추측입니다.
자세한 내용 은이 MSDN 페이지를 참조하십시오.
소문자 버전을 선호하지만 특별한 이유는 없습니다. 구문 강조 표시가 "기본"유형에서 다르고 입력 할 때 Shift 키를 사용할 필요가 없기 때문입니다.
하나는 다른 하나의 이름입니다. 그 다운 스타일.
string
이름입니다 global::System.String
, 그리고 object
에 대한global::System.Object
당신이 제공하는 using System;
클래스에서, String
/ string
와 Object
/ object
기능적으로 동일하며 사용은 스타일의 문제이다.
( Jon Skeet의 의견에 따라
약간의 오해의 소지가있는 인용문 제거 )string
(소문자 "s"포함)는 C # 언어의 언어가 유형이고 유형 System.String
은 string
.NET 프레임 워크에서의 구현입니다 .
실제로 문체 외에는 차이가 없습니다.
편집 : 위의 내용이 명확하지 않게 충돌기 때문에 발생하는 유형입니다. 나는 컴파일러가 보는 의미 적 차이를 설명하고 있었다 (반면 루프의 차이와 일치하는 구문 적 설탕이다).
차이가 없습니다. 당신이 언급 한 스타일로 컴파일러에 의해 위협받는 원시 데이터 유형 라고 불리는 많은 유형 이 있습니다.
대문자로 된 이름 지정 스타일은 ISO 이름 지정 규칙입니다. 더 일반적이고 일반적입니다. C # 컴파일러에있는 예외없이 소스의 모든 개체에 대해 명명 규칙을 적용합니다.
내가 아는 바에 따르면 바로 가기라는 것을 알고 System.string보다 훨씬 사용하는 것이 더 많은 것입니다.
하지만 어디에서나 어디에서 차이가 점에주의하세요 (c #은 대소 문자를 구분합니다)
object , int , long 및 bool 은 데이터 유형이 언어의 고정 된 부분이 아니라 생각에 적응하는 데 어려움을 겪는 사람은 엔지니어를위한 교육용 휠로 제공됩니다 . C #은 이전에 사용 된 언어와 달리 추가 할 수있는 데이터 유형의 수에 제한이 없습니다. 'System'라이브러리는 System.Int32 , System.Boolean , System.Double , System.DateTime 과 같은 기능 유형을 특징으로하는 시작 키트를 제공합니다.등이지만 엔지니어는 자신의 것을 추가하는 것이 좋습니다. Microsoft는 새로운 언어를 신속하게 사용할 수있는 데 관심이 있었기 때문에 언어가 'C'와 해당 보이도록 표시합니다.
StyleCop은 레거시 C 스타일의 사용을 강제하지만 다른 위치 인 규칙 집합에 대한 결함입니다. 아직없는 것이 규칙 (SA1121)에 대한 단 하나의 약속 화가 도그마에 기반하지 않은 것을 본 적이 없습니다. SA1121이 위치라고 생각한다면 datetime에 대한 빌드 유형이 없습니까?
참고 URL : https://stackoverflow.com/questions/1017282/c-difference-between-system-object-and-object
'ProgramingTip' 카테고리의 다른 글
Eclipse Javadoc 생성 마법사 : "Javadoc 명령"이란 무엇입니까? (0) | 2020.10.30 |
---|---|
Jshint.com은 "엄격한 사용"을 요구합니다. (0) | 2020.10.30 |
memcpy (0,0,0)을 수행하는 것이 안전을 수행합니까? (0) | 2020.10.30 |
"값 유형과 'null'의 가능한 비교"는 어떻게해야합니까? (0) | 2020.10.30 |
"서명 된 / 서명되지 않은 불일치"경고 (C4018)를 어떻게 처리합니까? (0) | 2020.10.30 |