
阅读目录
一:重复的代码
二:C#中通过委托Func消除重复代码
一:重复代码
public class Persion
{
public string Name { get; set; }
public int Age { get; set; } public Persion GetPersionInfo()
{
try
{
Persion persion = new Persion();
persion.Name = "David";
persion.Age = ; return persion;
}
catch (Exception ex)
{
return null;
}
}
}
public class Employee
{
public string Post { get; set; }
public int Salary { get; set; } public Employee GetEmployeeInfo()
{
try
{
Employee employee = new Employee();
employee.Post = "开发";
employee.Salary = ; return employee;
}
catch(Exception ex)
{
return null;
}
}
}
二:C#中通过委托Func消除重复代码
如下所示,try catch 语句只有一次了,这样就消除了GetPersionInfo方法和GetEmployeeInfo的try catch语句
public class Utillity
{
public static T TryExecute<T>(Func<T> func, string methodName)
{
try
{
return func();
}
catch (Exception ex)
{
Console.WriteLine("MethodName:" + methodName + " Error:" + ex.Message);
return default(T);
}
}
}
public class Persion
{
public string Name { get; set; }
public int Age { get; set; } public Persion GetPersionInfo()
{
return Utillity.TryExecute<Persion>(() =>
{
Persion persion = new Persion();
persion.Name = "David";
persion.Age = ; return persion;
}
, "GetPersionInfo");
}
}
public class Employee
{
public string Post { get; set; }
public int Salary { get; set; } public Employee GetEmployeeInfo()
{
return Utillity.TryExecute(() =>
{
Employee employee = new Employee();
employee.Post = "开发";
employee.Salary = ; return employee;
}
, "GetEmployeeInfo"); }
}
class Program
{
static void Main(string[] args)
{
Persion persion1 = new Persion();
Persion persion2 = persion1.GetPersionInfo(); Console.WriteLine("This persion name is {0}", persion2.Name);
Console.WriteLine("This persion age is {0}", persion2.Age); Employee employee1 = new Employee();
Employee employee2 = employee1.GetEmployeeInfo(); Console.WriteLine("This employee post is {0}", employee2.Post);
Console.WriteLine("This employee salary is {0}", employee2.Salary); Console.ReadLine();
}
}