中小型网站有哪些,黑帽seo易下拉霸屏,上海公共招聘网个人简化版,云南移动和生活app安装上一篇#xff1a; C##xff0c;入门教程(30)——扎好程序的笼子#xff0c;错误处理 try catchhttps://blog.csdn.net/beijinghorn/article/details/124182386 Visual Studio、C#编译器以及C#语法所支持的预处理指令#xff0c;绝对是天才设计。 编译程序的时候会发现 C#入门教程(30)——扎好程序的笼子错误处理 try catchhttps://blog.csdn.net/beijinghorn/article/details/124182386 Visual Studio、C#编译器以及C#语法所支持的预处理指令绝对是天才设计。 编译程序的时候会发现程序可以编译成 bebug 和 release 模式分别保存于相应的文件夹。 编写工业软件一定有下面两个必然的需求。
一、程序的调试版本与正式版本
有些代码仅用于调试debug版本比如一些中间结果、调试信息的输出
在正式release 版本中这些代码不应该被编译。
仅仅出现于 调试版本的代码可以用户 #if DEBUG #endif 包括起来。
#if DEBUGLog.Write(DEBUG LINE 001);#endif
同理仅仅出现于正式版本的代码
#if RELEASEFile.Write(result.dat, dataBuffer, Encoding.UTF8);#endif 二、不同版本程序的简约管理
工业软件的每一“段”代码都属于“千锤百炼”会有多个版本。 保存不同的版本可以通过版本控制、文件控制等等很多方式。 但其中最有效与直接程序员乐于接受的却是用“预处理指令”。
计算两点之间的距离第一个版本
public int Distance(int ax, int ay, int bx, int by)
{return (int)Math.Sqrt((ax-bx)*(ax-bx)(ay-by)*(ay-by));
}这个版本显然有问题可以改进
#if _VERSION_01_
public int Distance(int ax, int ay, int bx, int by)
{return (int)Math.Sqrt((ax-bx)*(ax-bx)(ay-by)*(ay-by));
}
#endifpublic int Distance(int ax, int ay, int bx, int by)
{int dx ax - bx;int dy ay - by;return (int)Math.Sqrt(dx * dx dy * dy);
}
注意这里并没有删除就的代码而是用一个未定义名称的预处理语句包括起来了。
第一个算法的代码不会被编译。
继续改进
#if _VERSION_01_
public int Distance(int ax, int ay, int bx, int by)
{return (int)Math.Sqrt((ax-bx)*(ax-bx)(ay-by)*(ay-by));
}
#endif#if _VERSION_02_
public int Distance(int ax, int ay, int bx, int by)
{int dx ax - bx;int dy ay - by;return (int)Math.Sqrt(dx * dx dy * dy);
}
#endifpublic int Distance(int ax, int ay, int bx, int by)
{int dx ax - bx;int dy ay - by;int dd dx * dx dy * dy;if(dd 0) return 0;return (int)Math.Sqrt(dd);
}-------------------------------------------------------- POWER BY TRUFFER.CN 下一篇
C#入门教程(32)——程序运行时的调试技巧与逻辑错误探针技术与源代码https://blog.csdn.net/beijinghorn/article/details/126014885