读者意见:本文对于.NET跨平台的阐述可能不正确,作者正在努力搜集资料准备对文章进行修正。
读者意见:本文对于.NET跨平台的阐述不多,属于标题党,作者决定将标题党行为坚持到底,如果仅对跨平台有兴趣的同志请忽略以下内容。
微软在最初发布.NET框架时就声称该框架具有跨平台特性,虽然至今我们都没有看到任何一款官方的Windows平台之外的.NET Runtime诞生,但为了实现跨平台微软在最初编写.NET类库时就预留了很多跨平台框架所必需的特性。今天想要和大家讨论的是一些常用的常量。
说到常量应当是无人不知无人不晓,但一些类库提供的常量常常为人所忽略。比如回车、换行就是一个非常典型的问题。我无数次看到很多写了n年.NET或者JAVA程序的老鸟还在使用“\r\ n”这样的转义字符来表达,其实大多数地球上的程序都知道,在Windows和Unix等不同的平台上,对于文本文件中的换行(这个“换行”是广义上的换行的概念)的定义是不一样的。就算我们的程序将仅在Windows上运行(事实上我们现在写的99.99%的C#程序都是这样的命运),直接使用转义字符也是非常不漂亮的写法。我也看到过将转义字符定义为常量,然后在程序的各个角落调用该常量的做法,应当说是非常标准的做法,但在.NET类库面前这显得多此一举。大家可以尝试一下Environment类的NewLine属性,这个属性将根据当先的平台特性返回一个正确的换行(广义)字符串。
Environment类提供有关当前环境和平台的信息以及操作它们的方法。比如“获取与当前用户关联的网络域名”、“获取系统目录的完全限定路径”、“检索所有环境变量名及其值”等等。如果您对这个类尚不了解的话,请参照以下MSDN链接:http://msdn.microsoft.com/zh-cn/library/system.environment_members(VS.80).aspx我相信这是一个非常有用的类。
另外一个非常常见的常量来自于路径,“\\”或者“/”这样的书写方式也经常能在不少程序员的代码中发现。这个问题和刚才的换行问题一样,就不再展开了。大家可以使用Path类中的一些属性来解决这个问题,Path提供以跨平台的方式处理目录字符串的方法和属性。比如Path.DirectorySeparatorChar可以在Windows中返回“\”代表分隔目录级别的符号,Path.VolumeSeparatorChar将会在Windows中返回“:”代表卷标或者说卷分隔符。如果这些内容能够让你茅塞顿开的话建议你访问以下MSDN链接:http://msdn.microsoft.com/zh-cn/library/system.io.path_members.aspx获取关于PATH类成员的更完整信息。
我想,通过以上这些描述,最基本的想要表达的是:.NET框架及其类库已经为我们完成了很多的准备工作,并非所有的事情都要从零做起,有的时候从零做起甚至是错误的。当遇到某个强烈期望硬编码的字符时,可以在创建公共静态变量之前优先考虑查阅MSDN,看看类库是不是能够帮到我们。

浙公网安备 33010602011771号