扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
以下是引用片段: 1 using System; 2 using System.IO; 3 using System.Drawing; 4 5 namespace Skyiv.Ben.PushBox.Common 6 { 7 /// 8 /// 这里是 .NET Framework 支持,而 .NET Compact Framework 不支持的东东 9 /// 10 static class Fcl 11 { 12 /// 13 /// 获取为此环境定义的换行字符串。-- Environment 14 /// 15 public static string NewLine { get { return "\r\n"; } } 16 17 /// 18 /// 打开一个文本文件,将文件的所有行读入一个字符串,然后关闭该文件。-- File 19 /// 20 /// 要打开以进行读取的文件 21 /// 包含文件所有行的字符串 22 public static string ReadAllText(string path) 23 { 24 string text = ""; 25 if (File.Exists(path)) 26 { 27 using (StreamReader sr = new StreamReader(path, Pub.Encode)) 28 { 29 text = sr.ReadToEnd(); 30 } 31 } 32 return text; 33 } 34 35 /// 36 /// 创建一个新文件,在其中写入指定的字符串,然后关闭该文件。-- File 37 /// 38 /// 要写入的文件 39 /// 要写入文件的字符串 40 public static void WriteAllText(string path, string contents) 41 { 42 using (StreamWriter sw = new StreamWriter(path, false, Pub.Encode)) 43 { 44 sw.Write(contents); 45 } 46 } 47 48 /// 49 /// 将指定的 Size 添加到指定的 Point。-- Point 50 /// 51 /// 要添加的 Point 52 /// 要添加的 Size 53 /// 加法运算的结果 54 public static Point Add(Point point, Size size) 55 { 56 return new Point(point.X + size.Width, point.Y + size.Height); 57 } 58 59 /// 60 /// 将一维数组的大小更改为指定的新大小。-- Array 61 /// 62 /// 数组元素的类型 63 /// 要调整大小的一维数组 64 /// 新数组的大小 65 public static void Resize(ref T[] array, int newSize) 66 { 67 if (array != null && array.Length == newSize) return; 68 if (array == null) array = new T[0]; 69 T[] newArray = new T[newSize]; 70 Array.Copy(array, newArray, Math.Min(array.Length, newArray.Length)); 71 array = newArray; 72 } 73 } 74 } |
俗话说,工欲善其事,必先利其器。我们知道,Microsoft .NET Compact Framework 只是 Microsoft .NET Framework 的一个子集,她省略了一些不常用的功能。但是,如果我们恰好需要这些功能,只好自己重新实现一下了。这个 Fcl 静态类就是起这个作用的。源程序代码的注释已经写得很清楚了。
Fcl.NewLine 我原本是想写成这样的:
以下是引用片段: static class Fcl { static static string newLine; /// /// 获取为此环境定义的换行字符串。-- Environment /// public static string NewLine { get { if (newLine == null) { newLine = (Environment.OSVersion.Platform != PlatformID.Unix) ? "\r\n" : "\n"; } return newLine; } } } |
可惜的是,这段代码无法在 .NET Compact Framework 下通过编译(如果是 .NET Framework 则没有问题)。原因是 PlatformID 枚举的成员:
Unix 操作系统为 Unix。
Win32NT 操作系统为 Windows NT 或较新的版本。
Win32S 操作系统为 Win32s(Win32 子集)类型。
Win32Windows 操作系统为 Windows 95 或较新的版本。
WinCE 操作系统为 Windows CE。
PlatformID.Unix 并不被 .NET CF 所支持。这实在是一件很奇怪的事,既然 .NET CF 都支持 PlatformID 的 Win32NT、Win32S、Win32Windows、WinCE 成员,为什么就不能支持 Unix 成员呢?这样,这个程序将来要移植到
要知道,这在主窗体的代码中用以下一段代码来实现在
以下是引用片段: public partial class MainForm : Form { protected override void OnLoad(EventArgs e) { base.OnLoad(e); miTopMost.Enabled = (Environment.OSVersion.Platform != PlatformID.WinCE); env.LoadConfig(); env.LoadGroup(); LoadLevel(true); if (env.IsSave) Restore(env.Steps); } |
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者