2015-08-24 17 views
43

W języku C# zazwyczaj używam String, gdy używam metody i string podczas deklarowania zmiennej. Czytałem gdzie indziej, że jest to preferowana metoda utrzymywania rzeczy w czystości i ma to dla mnie sens. W programie Visual Studio 2015 otrzymuję nową wiadomość, której nie otrzymałem wcześniej, gdy używam String: Name can be simplified. Sugestia VS polega na użyciu zamiast tego string.Dlaczego "ciąg znaków" jest uważany za uproszczoną wersję "ciągu znaków"?

Dlaczego obecnie jestpreferowany ponad String w VS2015, podczas gdy nie był w 2013 roku? Nie ma duplikatu . Ten pyta, jaka jest ogólna różnica, pytam, dlaczego VS sugeruje teraz jedno nad drugim; Nie wiem, czy zmieniła się różnica techniczna, czy coś podobnego.

+0

jednolitość wykorzystania jest również ważnym aspektem. –

+0

Głosowanie w celu zamknięcia opinii opartej na opiniach, ponieważ nie ma technicznych powodów, aby używać jednego z nich nad drugim. –

+2

@DStanley: Właśnie o to pytam. Jeśli opiera się na opiniach, to odpowiedziałoby na moje pytanie. Zapytałem, ponieważ VS sugeruje to, podczas gdy nie było to w przeszłości, co doprowadziło mnie do przekonania, że ​​istnieje ku temu techniczny powód. – vaindil

Odpowiedz

33

Ponieważ nie odznacz „Wolę wewnętrzną predefiniowany typ słowa kluczowego podczas deklarowania mieszkańców, parametry i członków” znaleźć pod Narzędzia> Opcje> Edytor tekstu> C#> Kod Styl

+4

Jest on pod Stylem Kodowania w sekcji C#, a nie Zaawansowany. Ale nadal uważam, że nie jest to całkiem poprawne - opcja, którą zaproponowałeś, zmienia _właściwe deklaracje_ (na przykład z 'int' na' Int32'). Inna podobna opcja, "Preferuj wstępnie zdefiniowane słowo kluczowe typu w wyrażeniach dostępu członków", powoduje podobną zmianę ('int.MaxValue' na' Int32.MaxValue'). W VS2013 użyłem 'string' /' String' jak opisałem w OP, nigdy nie dotknąłem tych opcji, żadnego komunikatu z VS. Teraz rzuca ten komunikat i nie wiem dlaczego. (Nawiasem mówiąc, VS2013 nie ma nawet tej opcji.) – vaindil

+1

@Vaindil: Tak; ta cała funkcja jest nowa w Roslyn. – SLaks

+0

Czy ta nowa metoda jest preferowana dla Roslyn? Zakładam, że jeśli VS rzuci ostrzeżenie o tym, po prostu chcesz sprawdzić. – vaindil

4

ciąg jest aliasem w C# dla System.String. Technicznie nie ma różnicy. To trochę jak int vs. System.Int32.

Jeśli chodzi o to, co powinieneś zrobić, string jest preferowanym obiektem dla zmiennych i String dla klas, tak jak to jest praktykowane.

zazwyczaj postrzegane jak tego

string example = "hello world"; 

string example = String.Format("Hello World {0}!", example); 
6

Narzędzia> Opcje> Edytor tekstu> C#> Kod Styl odznacz "Wolę wewnętrzną predefiniowany typ słowa kluczowego w wyrażeniach dostępu członkowskich"

Przykład podany w VS2015 dla tej opcji odwraca

var local = int.MaxValue (zaznaczone)

do

var local = Int32.MaxValue (odznaczone)

A potem prawdopodobnie będziesz chciał, aby ją wyłączyć/skonfigurować nasilenie kontroli na swoim ReSharper zbyt czyli „Wymień wbudowane w odniesieniu typu o typie CLR nazwa lub słowo kluczowe "reguła.

Teraz nic nie wskazuje na mnie, aby zmienić String.Format() do string.Format()

Powiązane problemy