在代碼中經常看到這樣的語句塊
if(條件1)
{
代碼1
}
if(條件2)
{
代碼2
}
if(條件3)
{
代碼3
}
………………………………
這樣做是沒錯的,但是,總好像有的問題,C#的從C和C++繼承過來的,If是C語言的代碼,C#應該不一樣,起碼面向對象
可以這樣改一下
首先我有3個類
public class FlagReadTem1 : FlagRead { public override void PrintFlag() { Console.WriteLine("flag is " + 1); } } public class FlagReadTem2 : FlagRead { public override void PrintFlag() { Console.WriteLine("flag is " + 2); } } public class FlagReadTem3 : FlagRead { public override void PrintFlag() { Console.WriteLine("flag is " + 3); } }
public class FlagRead
{
public virtual void PrintFlag()
{
throw new NotImplementedException();
}
}
這樣子的話,我就可以這樣寫了
int i = 0; int[] iArr = new int[3] { 1, 2, 3 }; i = iArr.OrderBy(o => Guid.NewGuid()).First(); Read r = (Read)ClassHelper.CreateInstance(Type.GetType("ConsoleApplication7.FlagRead.FlagReadTem" + i)); r.PrintFlag();
出去取得隨機的3行代碼,
之前幾十行的if代碼只剩下2行列,而且擴展起來非常方便
拋磚引玉,求高人們指點
因為本人語文都是考試個位數的,語言組織的不好請諒解