个性化阅读
专注于IT技术分析

C#中的String和string关键字有什么区别

本文概述

如果你来自其他编程背景(例如Java), 则可能会注意到, 在C#中, 你可以使用string和String在代码中声明字符串变量。

String textA = "Hello";
string textB = "Hello";

你可能会问自己, 无论如何它们都有效, 但是它们之间有什么区别吗?技术上没有。

字符串是C#中System.String的别名。可以在int和System.Int32这样的情况下进行比较, 可以是整数, 也可以是bool和Boolean。它们都被编译为IL(中间语言)中的System.String。

string是保留字, String是类名。这意味着字符串本身不能用作变量名, 即:

StringBuilder String = new StringBuilder(); // Compile succesfully 
StringBuilder string = new StringBuilder(); // Doesn't compile

因此, 使用字符串很方便, 使用字符串的代码将永不中断, 但是使用字符串的代码将很少。 (你可以重新定义String, 但不能重新定义string)。

如果需要专门引用该类, 建议使用String即:

Decimal pricePerOunce = 17.36m; 
String s = String.Format("The current price is {0:C2} per ounce.", pricePerOunce);

字符串只是C#内置的所有别名之一, 与Java不同。你可以在以下列表中查看所有别名:

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

如前所述, 你可以使用别名, 而无需导入use System。

定论

string是一个关键字, 你不能使用string作为标识符。

字符串不是关键字, 你可以将其用作标识符:

string String = "I am a string";

关键字字符串是System.String的别名, 除了关键字issue之外, 两者是完全等效的, 因此:

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

笔记

  • 你可以在不导入任何组件的情况下使用字符串, 这与String相反, 因为如果不使用System则不能使用String。预先。
  • 你不能在反射中使用字符串;你必须使用String。
  • 为避免混淆, 请始终使用其中之一。但是从最佳实践的角度来看, 当你进行变量声明时, 最好使用字符串, 并且在将其用作类名时使用String是首选。
赞(0)
未经允许不得转载:srcmini » C#中的String和string关键字有什么区别

评论 抢沙发

评论前必须登录!