Wenn ich in Visual Studio 2015 arbeite, habe ich eine bedingte Überprüfung mit folgendem Effekt:
%Vor%Und ich habe einen IDE001 Quick Tip oder eine Aktion gesehen, der darauf hinweist, dass der Name vereinfacht werden kann "mit einer vorgeschlagenen Korrektur von:
%Vor% Mit dem einzigen Unterschied, string
anstelle von String
zu verwenden.
MSDN-Beispiele verwenden einen Großbuchstaben S mit String
und diese SO-Antwort verdeutlicht, dass " string
" ein Alias in C # für System.String
ist. Also technisch gibt es keinen Unterschied. "
Und um klar zu sein, meine Frage beruht auf den Antworten innerhalb von String vs. String , aber ich habe eine andere Frage als was dort gefragt wird.
Auch verwandt ist diese SO-Frage , obwohl die Antworten dort nicht wirklich auf die Frage eingehen. Diese spezielle Frage ist meiner sehr ähnlich, jedoch ist sie als Duplikat der anderen SO-Frage gekennzeichnet, die ich notiert habe. Und gibt es einen Kommentar vom OP Dies ist ein brandneues Verhalten, das erst 2015 zu sehen ist.
Meine Frage
Meine Frage ist, dass, wenn die beiden Variablentypen äquivalent sind und MS-Beispiele die Großbuchstabenversion verwenden, warum sehe ich schnelle Aktionen, um die Kleinschreibung zu verwenden? Gab es eine Änderung in der .NET 4.6 Framework und VS2015, um die Verwendung der Kleinschreibung zu fördern? Es scheint nicht so, als würde ich diese Art von Trinkgeld sehen.
Ich spekuliere nur, aber es scheint mir, dass der Quicktip Ihnen dabei helfen soll, System.String
bis string
zu vereinfachen, ohne die Tatsache zu beachten, dass Ihre using
s es zumindest in Bezug auf Zeichen zählen.
Nennen Sie es einen Fehler (wenn auch ein extrem kleiner) oder zumindest die IDE wird übereifrig. Ein könnte argumentieren, dass dies eine gültige Vereinfachung im weiteren Sinne ist, insbesondere wenn Sie diese kurzen "Aliase" konsequent in Ihrem Code verwenden. Als C ++ Entwickler sehe ich das nicht wirklich, aber da gehts.
Nun, so schlauer als ich bemerkt habe, gibt es eigentlich keinen Unterschied in der Kompilierungsebene und wie Sie (und wie JohnyL, wie Sie sehen werden;), dachte ich auch, dass es ein Fehler ist und was mich zu meiner Antwort führt :
Warum sehe ich schnelle Aktionen, um die Kleinschreibung zu verwenden?
Entnommen aus diese informative (und lustige) Bug-Diskussion, das sind die wichtigsten Punkte für dieses Feature:
String
-Typnamen durch das string
-Schlüsselwort. Die Tatsache, dass sich die 2 nur zufällig unterscheiden, ist ein Zufall. Es gibt Fälle, in denen die Anzahl der Zeichen unterschiedlich ist ( Int32 -> int
) oder der Name völlig anders ist ( Single -> float
). string
im Code bevorzugen (es hängt wahrscheinlich von anderen Sprachen ab, in denen Sie codieren und deren Konventionen), hilft diese Funktion, den vorhandenen Quellcode zu ändern. string
ist auch ein Schlüsselwort mit einer gut definierten Bedeutung, während die Bedeutung von String
je nach Kontext unterschiedlich sein kann. Gab es eine Änderung in .NET 4.6 Framework und VS2015, um die Verwendung der Kleinschreibung zu fördern?
Soweit ich gelesen habe, Nein.
Übrigens können Sie dieses Verhalten in Tools & gt; Optionen & gt; Texteditor & gt; C # & gt; Codestil - & gt; Deaktivieren Sie das Kontrollkästchen "Intrinsic vordefinierten Typ Schlüsselwort in Memberzugriffsausdrücken bevorzugen".
Es gibt keinen Unterschied für den Compiler, aber IDE-Schnellkorrekturen werden auch verwendet, um ein gutes Styling sicherzustellen (z. B. Namenskonventionen). Sie programmieren in C #, so dass Sie seine Funktionen verwenden müssen (in diesem Fall - bultin type alias).
Ich denke, Sie verwenden int
anstelle von Int32
, oder? Das gleiche gilt für string
und String
. Obwohl es für string
technisch keinen wirklichen Längenunterschied gibt, ist das immer noch ähnlich.
Ich habe den Verdacht, dass der Hauptgrund für das Ändern von System.String
in string
darin liegt, dass es als primitives .NET betrachtet wird. Und da alle Primitive Aliase haben - System.Int32
- & gt; int
, System.Char
- & gt; char
usw., aus Gründen der Konsistenz wird "string" gleich behandelt. Wenn Sie alle anderen MSDN-Dokumentationen durchsehen, werden Sie beide austauschbar finden. Ich denke, das ist ein einfaches Versehen ihrer Seite.
Ob es gerechtfertigt ist oder nicht, ich werde immer noch string
über String
verwenden, wie die Quick Tips vorschlagen. Klingt wie ein Beispiel für Omas Cooking Secret, aber gibt es einen Grund, dieses Verhalten in diesem Fall zu ändern?
Tags und Links c# visual-studio-2015