programing

C#의 String과 String의 차이점은 무엇입니까?

elseif 2023. 4. 9. 21:06

C#의 String과 String의 차이점은 무엇입니까?

이 둘의 차이점은 무엇이고 어떤 것을 사용해야 하나요?

string s = "Hello world!";
String s = "Hello world!";

string 는 의 C# 에일리어스입니다.
그래서 엄밀히 따지면 차이가 없습니다.vs.랑 비슷해요.

이를 사용하는 것이 좋습니다.string★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

예.

string place = "world";

찬, 반, 로, 반, 반, 일, 일, 일, 일, likewise, likewise, likewise을 사용하는 것이 좋다고 생각합니다.String특별히 수업에 대해 언급할 필요가 있는 경우.

예.

string greet = String.Format("Hello {0}!", place);

이것은 Microsoft가 예시에 사용하는 스타일입니다.

StyleCop이 C# 고유의 에일리어스를 사용하도록 강제하고 있기 때문에 이 영역의 가이던스가 변경되었을 가능성이 있습니다.

완전성을 위해, 여기 관련 정보의 두뇌 덤프가 있습니다...

다른 사람들이 지적했듯이string입니다.System.String를 .String 정리하다System.String(String같은 코드로 컴파일되므로 실행 시 차이가 없습니다.C#은 C#은 C#은 C#은 C#로 되어 있습니다.전체 목록은 다음과 같습니다.

object:  System.Object
string:  System.String
bool:    System.Boolean
byte:    System.Byte
sbyte:   System.SByte
short:   System.Int16
ushort:  System.UInt16
int:     System.Int32
uint:    System.UInt32
long:    System.Int64
ulong:   System.UInt64
float:   System.Single
double:  System.Double
decimal: System.Decimal
char:    System.Char

★★★★★★외string ★★★★★★★★★★★★★★★★★」object에일리어스는 모두 값 유형입니다. decimalCLR을 사용합니다.은 '에일리어스'입니다.System.IntPtr.

사양에서는 값 유형 별칭을 "단순 유형"이라고 합니다.리터럴은 모든 단순 유형의 상수 값에 사용할 수 있습니다. 을 (VB와 해서) VB, (VB는) 다음을 가능하게 합니다.DateTime리터럴과 그에 대한 별칭도 있습니다.)

열거형의 기본 유형을 명시적으로 지정할 때 별칭을 사용해야 하는 한 가지 상황이 있습니다.예:

public enum Foo : UInt32 {} // Invalid
public enum Bar : uint   {} // Valid

이는 스펙이 열거형 선언을 정의하는 방법의 문제일 뿐입니다.콜론 뒤의 부분은 통합형 프로덕션이어야 합니다.이것은 다음 토큰 중 하나입니다.sbyte,byte,short,ushort,int,uint,long,ulong,char예를 들어 변수 선언에서 사용되는 형식 생성과는 달리...다른 차이는 없습니다.

마지막으로 어떤 것을 사용해야 하는지: 개인적으로는 구현 시 모든 장소에서 에일리어스를 사용하지만 모든 API에서는 CLR 유형을 사용합니다.구현에 있어서 어떤 것을 사용하는지는 그다지 중요하지 않습니다.팀 간의 일관성은 좋지만, 다른 사람은 신경 쓰지 않습니다.한편 API의 유형을 참조할 경우 언어 중립적인 방법으로 참조하는 것이 매우 중요합니다. a called called called called called라고 하는 ReadInt32 방법은 '이러다', '이러다', '이러다', '이러다'라는 방법이 .ReadInt통역이 필요합니다.는, 「」, 「다」, 「다를하는 언어를 하고 있을 수 있습니다.int입니다.Int16는 이는 에 .NET net net net net net net net net net net net net net 。이 예에서는BitConverter,BinaryReader ★★★★★★★★★★★★★★★★★」Convert②.

String for 의 약자System.String그리고 그것은 입니다.NET Framework 유형.string 에일리어스(C#언어)는System.String 다 IL(Intermediate Language)로 컴파일 되어 있기 때문에 차이가 없습니다.마음에 드는 것을 골라 그것을 사용하세요.C#로 코드를 입력해 주시면stringC# 타입의 에일리어스로 C# 프로그래머에 의해 잘 알려져 있기 때문입니다.

(int ) 등에 대해서도 같은 말을 할 수 있습니다.

C#에 기재되어 있는 타입의 에일리어스를 사용하는 것에 대해 지금까지 들은 것 중 가장 좋은 대답은 제프리 리히터의 저서 CLR Via C#에서 나온 것입니다.그 이유는 다음과 같습니다.

  • 코드에 스트링을 사용해야 할지 String을 사용해야 할지 몰라 혼란스러워하는 개발자들을 많이 봐왔습니다.C#에서는 문자열(키워드)이 시스템에 정확하게 매핑되기 때문입니다.String(FCL 타입), 차이는 없으며 둘 다 사용할 수 있습니다.
  • C#에서 긴 맵은 System에 매핑됩니다.Int64다른 프로그래밍 언어로 길게는 Int16 또는 Int32에 매핑할 수 있습니다.실제로 C++/CLI는 Int32로 길게 취급합니다.소스 코드를 한 언어로 읽는 사람은 다른 프로그래밍 언어로 프로그래밍하는 데 익숙하다면 코드 의도를 쉽게 오해할 수 있습니다.사실, 대부분의 언어들은 키워드로 길게 다루지도 않고 그것을 사용하는 코드를 컴파일하지도 않습니다.
  • FCL에는 메서드 이름의 일부로 유형 이름이 있는 메서드가 많이 있습니다.예를 들어 BinaryReader 유형은 ReadBoolean, ReadInt32, ReadSingle 등의 메서드와 시스템을 제공합니다.변환 유형은 ToBoolean, ToInt32, ToSingle 등의 메서드를 제공합니다.아래의 코드를 쓰는 것은 합법이지만, float가 있는 라인은 매우 부자연스럽고, 라인이 맞는지 확실하지 않습니다.
BinaryReader br = new BinaryReader(...);
float val  = br.ReadSingle(); // OK, but feels unnatural
Single val = br.ReadSingle(); // OK and feels good

자, 여기 있네요.다 좋은 점인 것 같아요.하지만, 제프리씨의 조언을 제 코드로 이용하는 제 자신을 발견하지 못했어요.내가 C#의 세계에 너무 빠져있는 것 같은데, 결국 내 코드를 프레임워크 코드처럼 보이게 하려고 한다.

string입니다만, 「 」String클래스 이름일 뿐입니다., ,,string변수 이름 자체로는 사용할 수 없습니다.

어떤 이유로 string이라는 변수가 필요한 경우 다음 컴파일 중 첫 번째 컴파일만 표시됩니다.

StringBuilder String = new StringBuilder();  // compiles
StringBuilder string = new StringBuilder();  // doesn't compile 

string이라는 변수 이름을 원하는 경우@★★★★★★★★

StringBuilder @string = new StringBuilder();

또 다른 중요한 차이점:스택 오버플로는 이들을 다르게 강조 표시합니다.

가지 차이가 있습니다. 사용할 수 없습니다.String 없이using System;리리확확확확확확

갱신일 :

"String""S" 에 입니다.NET Framework net net net 。문자 시퀀스를 나타내는 참조 유형입니다.

반,는"string" 「」가 ."s"입니다."System.String"것을 합니다.type은 같은 입니다.string은 'string'을 입니다."System.String"를 입력합니다.또, C# 코드에서 보다 일반적으로 사용됩니다.

다."String" ★★★★★★★★★★★★★★★★★」"string"는 C#으로 교환 가능하며, 어느쪽인가를 사용하여 유형 문자열 변수를 선언할 수 있습니다.

String myString = "Hello World"; // using the String keyword
string myString = "Hello World"; // using the string alias

이 경우에는 '아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아이다'를 사용하는 것이 좋습니다."string"다른 언어의 구문 및 규칙과의 일관성을 위해 C# 코드의 별칭을 지정합니다.

C# String에 대한 자세한 내용은 여기를 참조하십시오.

이 내용은 수 .string의 의미로,하셔야 합니다.String.

System.String. 클래스 - C# NET " " - C#string입니다.System.String 쓰임새가 - 쓰임새가 똑같다.

가이드라인에 대해서는 너무 고민하지 말고 그냥 아무렇게나 사용하겠습니다.인생에는 더 중요한 것이 있고, 어쨌든 코드는 똑같을 것입니다.

하고 있는 가 있는 는, 「정수」를 사용하는 이 있습니다.Int16,Int32,UInt16,UInt32더 수 요.String 사이를 때 더 쉬울 수 . - 그렇지 int.- int . net을 합니다. - string int int ada.

로 쓴 것이 .NET형식상의 이유로 (에일리어스가 아닌) 타입을 지정합니다..NET유형은 다른 개체 유형과 동일하게 색상이 지정됩니다(값 유형은 결국 적절한 개체입니다).

키워드 키워드(「」등).if,switch , , , , 입니다.return)는 소문자와 어두운 파란색(기본값)입니다.그리고 나는 사용방법과 형식에 있어서 이견을 갖고 싶지 않다.

고려사항:

String someString; 
string anotherString; 

string ★★★★★★★★★★★★★★★★★」String는 모든 면에서 동일합니다(대문자 "S" 제외).어느 쪽이든 퍼포먼스에 미치는 영향은 없습니다.

" " "string는 구문 강조 로 인해 됩니다.

이 유튜브 동영상은 그들이 어떻게 다른지 실제로 보여준다.

하지만 이제 긴 텍스트 답변을 위해.

when about about about about about .NET 가 있다.NET언어입니다.C#,VB.NET그 프레임워크를 사용하는 등).

여기에 이미지 설명 입력

System.String "은 "String"(S)이다.NETstring은 'string')C# typedata type 니다다 。

여기에 이미지 설명 입력

즉, "String"은 "String"의 별칭(다른 이름으로 불리는 동일한 것)입니다.따라서 기술적으로 다음 두 코드 문장은 동일한 출력을 제공합니다.

String s = "I am String";

또는

string s = "I am String";

마찬가지로 기타 C# 데이터 타입의 에일리어스는 다음과 같습니다.

" " 젝 object : " :System.Object: , "문자":System.String , bool: , bool:System.Boolean , "알겠습니다":System.Byte, sbyte:System.SByte: , 게::System.Int16기타 등등.

이제 프로그래머의 관점에서 백만 달러짜리 질문을 드리겠습니다."String"과 "String"은 언제 사용해야 할까요?

혼란을 피하기 위한 첫 번째 방법은 그 중 하나를 일관되게 사용합니다.그러나 변수 선언을 할 때는 "string"(작은 "s")을 사용하고 클래스 이름으로 사용할 때는 "String"(대문자 "S")을 사용하는 것이 좋습니다.

아래 코드에서 왼쪽은 변수 선언이며 "string"을 사용하여 선언됩니다.오른쪽에서는, 「String」이 보다 알기 쉽도록, 메서드를 부르고 있습니다.

string s = String.ToUpper() ;

C#은 CLR과 함께 사용되는 언어입니다.

string 는 C#의 타입입니다.

System.String 는 CLR의 유형입니다.

C#을 CLR과 함께 사용하면에 매핑됩니다.

이론적으로는 Java 바이트 코드를 생성한 C# 컴파일러를 구현할 수 있습니다.이 컴파일러의 합리적인 구현은 Java 런타임 라이브러리와 상호 운용하기 위해 에 매핑될 수 있습니다.

string입니다.System.String이 둘은 같은 점이 있습니다.C#.

유형시스템 유형)을 에 대한 System.Int32,System.String ), 「」, 「」의 순서로 설정합니다.C# aliases )int,string을 사용하는 것이 생각합니다만, 저는 으로 (등)을 하는 것이 좋다고 합니다.C# aliases하지만 그건 제 개인적인 취향일 뿐이에요.

string이에요.System.String컴파일러는 이들을 동일하게 취급합니다.

이라고 하는 것은 여러분이처럼 구문 강조 와 같이 '아까워서', '아까워서', '아까워서', '아까워서'라고 써야 요.using System을 쓰면String.

둘둘하다, 에서 보면 '코딩 가이드라인'을 사용하는 stringString. 이것은 일반적으로 개발자들은 것 은 반 적 발 용 입 this is of developers것 use사다는개니 generally이 what using instead eg일가하자로으 develop this isers use 예를 들어, 를 사용하는 대신Int32 we use 사용하고 있다int as ~하듯이int is alias to 에일리어스입니다.Int32

string 키워드 문자열은 미리 정의된 클래스 고 워 자 의 전 래 다 입 니 f별yi뿐일칭 anined클 " is정the for의스사된은 the문System.String" - C# 언어 사양 4.2.3 http://msdn2.microsoft.com/En-US/library/aa691153.aspx

다른 사람들이 말하는 것처럼, 그들은 동일합니다.다른 사람들이 말하듯이, 그들은 똑같다. 규칙은 StyleCop을 사용하도록 합니다.string로서 C#을 하는 경우는 제외합니다System.String 함수: " )String.Format,String.Join,String.Concat개요...

6년 5개월 만에 새로운 답변(조성).

한편, 「 」는, 「 」, 「 」의 사이에string는 항상 의미를 된 C#입니다.C# 입니다.String그냥 평범한 식별자일 뿐이고 어떤 것이든 나타낼 수 있어요현재 유형의 멤버에 따라 현재 네임스페이스 및 적용된using 및 그 「지시문」, 「지시문」, 「지시문」, 「지시문」, 「지시문」,String일 수 .global::System.String.

지시가 도움이 되지 않는 두 가지 예를 제시하겠습니다.


째, 제, 언String는 현재 유형(또는 로컬 변수)의 값입니다.

class MySequence<TElement>
{
  public IEnumerable<TElement> String { get; set; }

  void Example()
  {
    var test = String.Format("Hello {0}.", DateTime.Today.DayOfWeek);
  }
}

위의 내용은 다음 이유로 컴파일되지 않습니다.IEnumerable<>인 '비정적 멤버'가 .Format확장 방식은 적용되지 않습니다.위의 경우, 여전히 사용할 수 있습니다.String구문적으로 유일한 가능성이 있는 다른 컨텍스트에서는요.예를들면String local = "Hi mum!"; 및 (네임스페이스에 )는 수 .using( ) ( ( ) 。

나빠진 것: 말하기: 더 나빠진 것String.Concat(someSequence) 것 같다(에 따라 )using 메서드 s) Linq 확장 메서드로 합니다.Enumerable.Concat .string.Concat.


째, 제, 언String는 현재 유형 내에 중첩된 다른 유형입니다.

class MyPiano
{
  protected class String
  {
  }

  void Example()
  {
    var test1 = String.Format("Hello {0}.", DateTime.Today.DayOfWeek);
    String test2 = "Goodbye";
  }
}

「 」에는, 어느 도 기재되어 .Example메서드가 컴파일됩니다.서 ★★★★String항상 피아노 줄이지만MyPiano.String·회원 없음(static not) ( )Format가 존재하거나 기본 클래스에서 상속됩니다. 그 값 '''는 '''입니다'''는"Goodbye"변환할 수 없습니다.

시스템 유형을 사용하면 C#과 VB 간의 포팅이 쉬워집니다.넷, 그런 것에 관심이 있다면.

볼 수 , 는 른른른른른른른른른른른 against against against against against against against against against against against against against against against against against against against against against against against against against against against against against against against against against against against against against against against against against against를 선호한다.String에 걸쳐서string 강조하기 String존 스케트

string는 의 줄임말입니다.System.String 「 」라고 하는 것은 「 」라고 하는 string는 '우리'를 의미했다.System.String자세한 내용은 think link를 참조해 주세요.'string'은 System의 별칭/간단어입니다.스트링

리처즈 책에서 이 답을 덧붙이고 싶습니다.

C# 언어 사양에는 "스타일에 따라 전체 시스템 유형 이름을 사용하는 것보다 키워드를 사용하는 것이 좋습니다."라고 명시되어 있습니다.저는 언어 사양에 동의하지 않습니다. FCL 유형 이름을 사용하고 원시 유형 이름을 완전히 피하는 것을 선호합니다.사실 컴파일러가 원시적인 타입 이름조차 제공하지 않고 개발자에게 FCL 타입 이름을 사용하도록 강요하지 않았으면 합니다.이유는 다음과 같습니다.

  • 코드에 스트링을 사용해야 할지 String을 사용해야 할지 몰라 혼란스러워하는 개발자들을 많이 봐왔습니다.C# 문자열(키워드)은 시스템에 정확하게 매핑되기 때문입니다.String(FCL 타입), 차이는 없으며 둘 다 사용할 수 있습니다.마찬가지로 32비트 OS 상에서 int가 동작하고 있을 때는 32비트 정수를 나타내고, 64비트 OS 상에서 동작하고 있을 때는 64비트 정수를 나타낸다고 하는 개발자도 있습니다.이 스테이트먼트는 완전히 false입니다.C#에서는 int는 항상 System에 매핑됩니다.Int32, 즉 코드가 실행되고 있는 OS에 관계없이 32비트 정수를 나타냅니다.프로그래머가 코드에 Int32를 사용한다면 이 잠재적인 혼란도 해소됩니다.

  • C#에서 긴 맵은 System에 매핑됩니다.Int64다른 프로그래밍 언어로 길게는 Int16 또는 Int32에 매핑할 수 있습니다.실제로 C++/CLI는 Int32로 길게 취급합니다.소스 코드를 한 언어로 읽는 사람은 다른 프로그래밍 언어로 프로그래밍하는 데 익숙하다면 코드 의도를 쉽게 오해할 수 있습니다.사실, 대부분의 언어들은 키워드로 길게 다루지도 않고 그것을 사용하는 코드를 컴파일하지도 않습니다.

  • FCL에는 메서드 이름의 일부로 유형 이름이 있는 메서드가 많이 있습니다.예를 들어 BinaryReader 유형은 ReadBoolean, ReadInt32, ReadSingle 등의 메서드와 시스템을 제공합니다.변환 유형은 ToBoolean, ToInt32, ToSingle 등의 메서드를 제공합니다.아래의 코드를 쓰는 것은 합법이지만, float가 있는 라인은 매우 부자연스럽고, 라인이 맞는지 확실하지 않습니다.

    BinaryReader br = new BinaryReader(...);
    float val = br.ReadSingle(); // OK, but feels unnatural
    Single val = br.ReadSingle(); // OK and feels good
    
  • C#만을 사용하는 많은 프로그래머는 CLR에 대해 다른 프로그래밍 언어를 사용할 수 있다는 것을 잊어버리는 경향이 있으며, 이 때문에 C#-isms가 클래스 라이브러리 코드에 슬금슬금 들어갑니다.예를 들어 Microsoft의 FCL은 거의 C#으로 작성되어 있으며 FCL 팀의 개발자는 Array의 GetLongLength 의 메서드를 라이브러리에 도입하고 있습니다.이러한 메서드는 C#에서는 길고 다른 언어(C++/CLI )에서는 반환되지 않습니다.또 다른 예로는 System이 있습니다.Linq.EnumableLongCount 메서드.

나는 그의 의견을 이해하지 못하고 그 단락을 다 읽었다.

「」( )System.String)는 기본 클래스 라이브러리의 클래스입니다.문자열(소문자)은 시스템 에일리어스인 C#의 예약된 작업입니다.String.는 ''와 입니다. Int32 vs int.Boolean vs. bool이러한 C# 언어 고유의 키워드를 사용하면, C와 같은 스타일로 프리미티브를 선언할 수 있습니다.

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ stringC/C++는 C/C++입니다.Int/를합니다(Int/Int는 int/).Int32은 '와 '객체'에decimal뿐만 아니라.

은 "가 "int"를 의미하는 데 이 될 수 Int64 모든 업그레이드 마법사가 될 수 업그레이드 마법사로 인해 모든 업그레이드 마법사에 의해int에 대한 Int32어쨌든 안전을 위해서요

@JaredPar(C# 컴파일러 개발자, 다작 SO 사용자!)는 이 문제에 관한 훌륭한 블로그 투고를 작성했습니다.여기서 공유할 가치가 있다고 생각합니다.그것은 우리 주제에 대한 좋은 견해이다.

string ★★String인 토론이

[...]

" " "stringC# c c c c c c c c c c c c c c c 。입니다.System.String코어 런타임 어셈블리에 존재합니다.런타임은 본질적으로 이 유형을 인식하고 개발자가 에서 문자열에 기대하는 기능을 제공합니다.NET. 그 존재는 C#에 매우 중요하기 때문에 그 타입이 존재하지 않는 경우 컴파일러는 코드 행을 해석하기 전에 종료됩니다. 때문에, 「 」는 할 수 없습니다.stringC# 코드에는 정확하고 명확한 의미가 있습니다.

''StringC# c c c c c c c c c c c c c c c 。입니다.Widget,Student, 할 , 이 완전히 다른 다른 할 또한 다른 어셈블리의 목적은 전혀 다를 수 있습니다.string. 더 나쁜 될 수 것입니다.String s = "hello"

class TricksterString { 
  void Example() {
    String s = "Hello World"; // Okay but probably not what you expect.
  }
}

class String {
  public static implicit operator String(string s) => null;
}

의 실제 String는 항상 이름 해결에 따라 달라집니다.즉, 프로젝트의 모든 소스 파일과 참조되는 모든 어셈블리에 정의된 모든 유형에 따라 달라집니다.요컨대, 그것이 무엇을 의미하는지 알기 위해서는 꽤 많은 문맥이 필요하다.

의 경우 ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★」String ★★★★★★★★★★★★★★★★★」string는 같은 타입으로 바인드 됩니다. ,, 을, 을, 용을 String여전히 개발자들은 정답이 하나밖에 없는 곳에서 그들의 프로그램을 해석에 맡기고 있다는 것을 의미한다.String에게 몇 시간 동안 수 을 낭비할 수 있습니다. 버그를 사용하면 할 수 string.

차이를 시각화하는 또 다른 방법은 다음 표본을 사용하는 것입니다.

string s1 = 42; // Errors 100% of the time  
String s2 = 42; // Might error, might not, depends on the code

은 이것이 으로 정확한 라고 이다.String코드베이스가 이 이름의 유형을 정의하는 경우는 극히 드물기 때문에 아직 괜찮습니다. 그 때.String코드베이스가 불량하다는 신호로 정의되어 있습니다.

[...]

String 렉서,등 가지 되어 있습니다. 라이브러리의 쪽인가에 는, 「 Helpers, Library, , Protocols 등입니다.이러한 라이브러리 중 하나에 대해String ★★string코드 사용 장소에 따라 실제 결과가 나타납니다.

'이러다', '이러다', '이러다', '이러다', '이러다', '이러다', '이러다', '이러다', '이러다', '이러다', '이러다', 'String ★★string토론은 스타일이 아니라 의미론에 관한 것이다.문자열을 선택하면 코드베이스에 명확한 의미가 부여됩니다.[ ] 를 합니다.String틀리지는 않지만, 미래에 놀랄만한 일이 생길 수 있는 문을 열어두고 있습니다.

주의: 대부분의 블로그 투고는 아카이브의 이유로 복사/붙여넣었습니다.무시한 부분도 있기 때문에 가능하면 생략하고 블로그 투고를 읽는 것을 추천합니다.

String Identifier로 할 수 .반면, 「」는 「Identifier」로 사용할 수 있습니다.string로로로 로로 로로로로 로로로 。그리고 기능적인 관점에서 보면 두 가지 모두 동일합니다.

파티에 늦게 온다:CLR 타입은 100% 사용하고 있습니다(C# 타입을 사용하도록 강요된 경우는 제외합니다만, 그것이 언제가 마지막이었는지는 기억나지 않습니다).

Ritchie의 CLR 책에 따르면, 저는 이 작업을 수년 전에 시작했습니다.모든 CLR 언어는 궁극적으로 일련의 CLR 유형을 지원할 수 있어야 하므로 CLR 유형을 직접 사용하면 더 명확하고 "재이용 가능한" 코드가 제공될 수 있습니다.

몇 년 동안 해왔기 때문에 습관적으로 VS가 보여주는 CLR 타입의 컬러가 마음에 듭니다.

유일한 실제 다운로어는 자동완성이 C# 타입을 사용하기 때문에 자동 생성된 타입을 재입력하여 CLR 타입을 지정합니다.

또, 「int」나 「string」을 보면, 1970년대의 C코드를 보는 것처럼, 정말로 잘못되어 보입니다.

차이가 없다.

# C# " "string 타입 NET System.String- 언어의 명명 규칙을 준수하는 별칭입니다.

similarly유 similarly,, similarly 、int의 맵System.Int32.

다니엘 솔리스의 책에서 이 문제에 대한 인용구가 있다.

정의된 모든 유형은 기본에 직접 매핑됩니다.NET 타입C# 타입명(문자열)은 의 에일리어스일 뿐입니다.NET 타입(String 또는 System).문자열)을 사용합니다.NET 이름은 구문적으로 올바르게 기능하지만 이는 권장되지 않습니다.C# 프로그램에서는 가 아닌 C# 이름을 사용해야 합니다.NET 이름

그 ,, 건, 건, 건, 건, 건, yes처럼요.bool ★★★★★★★★★★★★★★★★★」Boolean.

string은 키워드이므로 문자열을 식별자로 사용할 수 없습니다.

문자열은 키워드가 아니므로 식별자로 사용할 수 있습니다.

string String = "I am a string";

" " "string입니다.System.String키워드 이슈를 제외하고, 이 둘은 완전히 동일합니다.

 typeof(string) == typeof(String) == typeof(System.String)

언급URL : https://stackoverflow.com/questions/7074/what-is-the-difference-between-string-and-string-in-c