Visual Studio:针对 Java 开发人员的 C# 编程语…
2008-02-23 10:15:41来源:互联网 阅读 ()
字符串
C# 提供了避免在字符串常量中使用转义序列(如代表制表符的“\t”或代表反斜杠字符的“\”)的功能。要这样做,可以在为字符串赋值之前使用 @ 符号来声明字符串。下面的示例显示了如何使用转义字符以及如何为字符串赋值:
//Using escaped characters string path = "\\\\FileShare\\Directory\\file.txt"; //Using String Literals string escapedPath = @"\\FileShare\Directory\file.txt";
转换和强制转换
Java 和 C# 遵守相似的数据类型自动转换和强制转换规则。
同 Java 一样,C# 既支持隐式类型转换又支持显式类型转换。在扩大转换的情况下,转换是隐式的。例如,下面从 int 到 long 的转换是隐式的,如同 Java 中的一样:
int intVariable = 5; long l = intVariable;
下面是 .NET 数据类型之间的隐式转换列表:
隐式转换 源类型 目标类型byte
short, ushort, int, uint, long, ulong, float, double 或 decimal
sbyte
short, int, long, float, double, ? decimal
int
long, float, double, 或 decimal
uint
long, ulong, float, double, 或 decimal
short
int, long, float, double, 或 decimal
ushort
int, uint, long, ulong, float, double, 或 decimal
long
float, double, 或 decimal
ulong
float, double, 或 decimal
float
double
char
ushort, int, uint, long, ulong, float, double, 或 decimal
可以使用与 Java 一样的语法对希望显式转换的表达式进行强制转换:
long longVariable = 5483; int intVariable = (int)longVariable;显式转换 源类型 目标类型
byte
sbyte 或 char
sbyte
byte, ushort, uint, ulong, 或 char
int
sbyte, byte, short, ushort, uint, ulong, 或 char
uint
sbyte, byte, short, ushort, int, 或 char
short
sbyte, byte, ushort, uint, ulong, 或 char
ushort
sbyte, byte, short, 或 char
long
sbyte, byte, short, ushort, int, uint, ulong, 或 char
ulong
sbyte, byte, short, ushort, int, uint, long, 或 char
float
sbyte, byte, short, ushort, int, uint, long, ulong, char, 或 decimal
double
sbyte, byte, short, ushort, int, uint, long, ulong, char, float, 或 decimal
char
sbyte, byte, 或 short
decimal
sbyte, byte, short, ushort, int, uint, long, ulong, char, float, 或 double
值类型和引用类型
C# 支持两种变量类型:
•值类型 — 这些是内置的基本数据类型,例如 char、int、float 和用 struct 声明的用户定义类型。
•引用类型 — 从基本类型构造而来的类和其他复杂数据类型。这种类型的变量并不包含类型的实例,而只是包含对实例的引用。
让我们略微深入地研究一下这个问题。如果我们创建两个值类型变量 i 和 j,比如:
int i = 10; int j = 20;

图 1:值类型的内存位置
则 i 和 j 彼此完全独立,并且分配了不同的内存位置:
如果我们改变这些变量中的某一个的值,另一个自然不会受到影响。例如,如果我们有一个这样的表达式:
int k = i;
则变量之间仍然没有联系。也就是说,之后如果我们改变 i 的值,k 还会保留赋值时 i 具有的值。
然而,引用类型的做法却不同。例如,我们可以这样声明两个变量:
myClass a = new myClass(); myClass b = a;
现在,因为类是 C# 中的引用类型,所以 a 称为对 myClass 的引用。上面两行中的第一行在内存中创建了 myClass 的一个实例,并且将 a 设置为引用该实例。因此,当我们将 b 设置为等于 a 时,它就包含了对内存中类的引用的重复。如果我们现在改变 b 中的属性,a 中的属性就将反映这些改变,因为这两者都指向内存中的相同对象,如下图所示:
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash
