2008-09-22 7 views
17

C#에는 String 개체와 string 개체가 있습니다.문자열 대 문자열

둘 사이의 차이점은 무엇입니까? 사용할 최상의 방법은 무엇입니까?

+0

이 [질문 및 답변] (http://stackoverflow.com/questions/7074/in-c-what-is-the-difference-between-string-and-string) 도움이 될 수도 있습니다. –

답변

28

차이는 없습니다. string (소문자)은 System.String의 별칭입니다.

3

차이는 없습니다. string은 컴파일러에서 System.String으로 변환하는 별칭입니다.

사실, 그것은 심지어 MSIL에 별칭 것 : 그들 사이에는 차이가 없습니다

.method private hidebysig static void Main(string[] args) cil managed 
2

. string은 System.String의 별칭입니다. 컴파일되면 둘 다 System.String 객체로 컴파일됩니다.

2

소문자 버전은 실제 클래스 String의 별칭입니다. IL이 생성되는 한 실제적인 차이는 없습니다.

10

별칭이며 서로 바꿔서 사용할 수 있습니다. 그러나 stylistically, 선언에 대한, 나는 lowercased 문자열을 사용하고 정적 메서드에 대한 문자열을 사용합니다.

string foo = "bar"; 

if(foo != String.Empty) 
{ 
    Console.WriteLine(String.Format("foo.Length = {0}", foo.Length)); 
} 
1

문자열은 컴파일러에서 System.String으로 변환되므로 차이가 없습니다. 모든 공통 유형 (int는 System.Int32 등으로 이동)과 동일합니다. 우리는 단순한 이름을 사용합니다.

14

차이가 없습니다. System.String은 정확히 string과 동일합니다. 일반적인 C# 코딩 지침은 키워드 string을 사용해야 함을 나타냅니다.

1

는 아무런 차이가 없습니다. string은 System.Int32를 참조하는 키워드 인 것처럼 System.String 클래스를 참조하는 C# 언어 키워드입니다.

2

미래에는 둘 다 사용하는 앱을 컴파일 한 다음 Reflector (언어를 IL로 변경)를 사용하여 컴파일 된 결과를 확인하십시오. 아무런 차이가 없다는 것을 알게 될 것입니다.

1

"int"가 16 비트/32 비트 시스템에 따라 일부 언어에서 다르다는 것을 고려하면 "문자열"은 앞으로 System.String과 동일하지 않게 발전 할 수 있습니다.

하지만 지금은 그렇습니다.

0

단지 비트 메모 : 문자열/문자열은 별칭의 유일한 몇 가지가 아닙니다 : 예. Integer, Int32, int는 모두 별칭입니다.

@mliesen : C#에서는 문제가되지 않지만 C#에서는 실행 파일을 만들지 않고 java처럼 컴파일 된 코드를 생성하기 때문에 C와는 다릅니다.