如果同一字符串出现两次以上,使用变量替换
var b = false
if(b)
Console.WriteLine(b);
应该使用
if(b) Console.WriteLine(b);
字符串相加:
var concatenatedString = "a" + "b";
应该使用Concat方法代替
var concatenatedString = string.Concat("a", "b");
Const 变量在编译期间使用变量的值直接替换此变量,因此具有更高效率,但使用不小心容易出错
例子最能说明问题:
有一个C#库程序名字为Constants
public class OurConstants
{
public const int FAILURERESULT=-1;
public static readonly int SUCCESS = 1;
}
主程序名字为ConstReadonlyTest,引用Constants库
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Constant: {0}", OurConstants.FAILURERESULT);
Console.WriteLine("Constant: {0}", OurConstants.SUCCESS);
}
}
编译之后运行输出结果如下
Constant: -1
Constant: 1
对上面库程序作如下修改
public class OurConstants
{
public const int FAILURERESULT=-2;
public static readonly int SUCCESS = 2;
}
重新编译Constants,将Constants.dll 拷贝到主程序ConstReadonlyTest目录,注意不要编译主程序,再次运行,结果如下
Constant: -1
Constant: 2
应该能琢磨出他们的区别了吧
在开发组件(库)供其他程序使用时,应该使用避免使用const
先看一个错误的使用方式
classs Test
{
public static void Run()
{
FileStream stream = new FileStream();
//...
stream.Close();
stream.Dispose();
}
}
改进版:
classs Test
{
public static void Run()
{
try
{
FileStream stream = new FileStream();
//...
stream.Close();
}
catch
{
}
finally
{
stream.Dispose();
}
}
}
classs Test
{
public static void Run()
{
using( FileStream stream = new FileStream())
{
//...
stream.Close();
}
}
}
枚举,
enum Week
{
Sun = 1,
Mon = 2,
Tue = 3,
Wed = 4,
Thu = 5,
Fir = 6
}
enum Gender
{
Male,
Female
}
Week week;// 默认值为0
Gender gender;// 默认值为Male
对于Week使用默认值时,就很容易导致错误,建议是为每个enum声明无效值,
enum Week
{
Invalid = 0,
Sun = 1,
Mon = 2,
Tue = 3,
Wed = 4,
Thu = 5,
Fir = 6
}
enum Gender
{
Invalid = 0,
Male,
Female
}
将一个大的方法设法分割成多个小的方法,每个方法只做一件事,通过方法名很容易得知次方的的作用,从而起到注释的作用