科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件用C#开发智能手机软件:推箱子(六)

用C#开发智能手机软件:推箱子(六)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

在上篇文章“使用 C# 开发智能手机软件:推箱子(五)”中,我对经过改进后的 Common/FindPath.cs 源程序文件进行了介绍。在这篇文章中,介绍 Common/Pub.cs 源程序文件 ……

作者:银河 来源:博客园 2007年11月17日

关键字: C# 智能手机 软件 推箱子

  • 评论
  • 分享微博
  • 分享邮件
在上篇文章使用 C# 开发智能手机软件推箱子(五)”中,我对经过改进后的 Common/FindPath.cs 源程序文件进行了介绍。在这篇文章中,介绍 Common/Pub.cs 源程序文件。

以下是引用片段:
1 using System;
  2 using System.Drawing;
  3 using System.Text;
  4 using System.IO;
  5 using System.Reflection;
  6
  7 namespace Skyiv.Ben.PushBox.Common
  8 {
  9 /// 
  10 /// 公共的字段和方法
  11 /// 
  12 static class Pub
  13 {
  14 public const int OverY = 4; // 允许在屏幕(Y)方向超过的像素数
  15 public const int DefaultMaxLevelSize = 32; // 缺省的最大关尺寸(宽度和高度)
  16 public const int DefaultStepDelay = 100; // 缺省移动时间间隔(毫秒)
  17 public const int DefaultReplayDelay = 300; // 缺省回放时间间隔(毫秒)
  18 public const int MaxDelay = 1000; // 允许的最大时间间隔(毫秒)
  19 public readonly static string ConfigFileName = Path.Combine(baseDirectory, "PushBox.cfg"); // 配置文件全路径名
  20 public readonly static Encoding Encode = Encoding.GetEncoding("GB2312"); // Windows Mobile 6.0 不支持 GB18030
  21 static string baseDirectory { get { return Path.GetDirectoryName(Pub.CodeBases); } } // 本程序所在的目录
  22
  23 static Assembly Assembly { get { return Assembly.GetExecutingAssembly(); } }
  24 static AssemblyName AssemblyName { get { return Pub.Assembly.GetName(); } }
  25 public static Version Version { get { return Pub.AssemblyName.Version; } } // 本程序的版本
  26 public static string TextDirectory { get { return Path.Combine(baseDirectory, "text"); } }
  27 public static string DataDirectory { get { return Path.Combine(baseDirectory, "data"); } }
  28 public static string StepsDirectory { get { return Path.Combine(baseDirectory, "steps"); } }
  29 public const string TextExtName = ".bxa"; // 文本文件扩展名
  30 public const string DataExtName = ".bxb"; // 数据文件扩展名
  31 public const string StepsExtName = ".bxs"; // 通关步骤文件扩展名
  32
  33 /// 
  34 /// 本程序的全路径名
  35 /// 
  36 public static string CodeBases
  37 {
  38 get
  39 {
  40 string codeBase = Pub.AssemblyName.CodeBase;
  41 string uri = "file:///";
  42 if (codeBase.StartsWith(uri)) codeBase = codeBase.Substring(uri.Length);
  43 return codeBase;
  44 }
  45 }
  46
  47 /// 
  48 /// 给出指定尺寸的显示字符串,格式为: 宽x高
  49 /// 
  50 /// 指定的尺寸
  51 /// 指定尺寸的显示字符串
  52 public static string ToString(Size size)
  53 {
  54 return size.Width + "x" + size.Height;
  55 }
  56
  57 /// 
  58 /// 将走法步骤转换为字符串
  59 /// 
  60 /// 走法步骤
  61 /// 转换后的字符串
  62 public static string ToString(Step[] steps)
  63 {
  64 StringBuilder sb = new StringBuilder();
  65 foreach (Step step in steps) sb.Append((char)step);
  66 char[] array = sb.ToString().ToCharArray();
  67 Array.Reverse(array);
  68 return new string(array);
  69 }
  70
  71 /// 
  72 /// 给出指定版本的信息,格式为: x.x (build: yyyy-MM-dd)
  73 /// 
  74 /// 指定的版本
  75 /// 指定版本的信息
  76 public static string GetVersionBuildString(Version version)
  77 {
  78 double days = version.Build + 2 * version.Revision / ((double)TimeSpan.TicksPerDay / TimeSpan.TicksPerSecond);
  79 return string.Format("{0} (Build: {1})", version.ToString(2), (new DateTime(2000, 1, 1)).AddDays(days).ToString("yyyy-MM-dd HH:mm:ss"));
  80 }
  81
  82 /// 
  83 /// 给出指定异常的信息,包含其内含异常的信息
  84 /// 
  85 /// 指定的异常
  86 /// 是否给出详细信息
  87 /// 指定异常的信息
  88 public static string GetMessage(Exception ex, bool isDebug)
  89 {
  90 StringBuilder sb = new StringBuilder();
  91 for (Exception e = ex; e != null; e = e.InnerException)
  92 {
  93 sb.Append(isDebug ? e.ToString() : e.Message);
  94 sb.Append(Fcl.NewLine);
  95 }
  96 return sb.ToString();
  97 }
  98 }
  99 }
  100

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章