如何在方法内部声明方法
本文关键字:方法 内部 声明 | 更新日期: 2023-09-27 18:02:03
我有一个这样的类:
public Class Work
{
public DataTable GetWork()
{
//return a datatable which contains information about working hourse
}
}
我想在GetWork方法中声明另一个方法。
实际上我想创建一个类,在这个类中我可以这样调用:
DataTable myData=Work.GetWork.ToDays()//Returns work days
DataTable myOtherData=Work.GetWork.ToHour();//Returns work hours
我怎样才能达到上述状态?提前感谢,请原谅我的英语不好:(
您可以使用扩展方法来实现这一点。
例子:
public static class DataTableExtensionMethods
{
public static int ToDays(this DataTable dt)
{
// fetch and return the days.
}
}
现在你可以用:
var myDays = Work.GetWork().ToDays();
不能在另一个方法中定义一个方法。
你可以在类中创建一个属性,如下所示:
public class Work
{
public static DataTable WorkProperty
{
get
{
//return a datatable which contains information about working hourse
}
}
}
现在,定义你的GetWorkInHours
和GetWorkInDays
方法,使它们接受一个DataTable
作为参数,也返回一个DataTable
,并在里面做你的事情。
现在,你可以写
DataTable myData=Work.WorkProperty.GetWorkInDays()//Returns work days
DataTable myOtherData=Work.WorkProperty.GetWorkInHours();//Returns work hours
创建一个自定义的DataTable
类,在其中实现ToDays
和ToHour
操作。
的例子:
public class Work
{
public MyDataTable GetWork()
{
//return a datatable which contains information about working hourse
}
}
public class MyDataTable : DataTable
{
public int ToDays()
{
// todo: implement
}
public int ToHour()
{
// todo: implement
}
}
我喜欢这种扩展方法,因为您可以将逻辑放在逻辑所属的位置,并且无需添加using语句即可自动使用。
您必须创建另一个类
public class Work
{
public DataTable GetWork()
{
DataTable result;
//create result
return result;
}
}
public class DataTable
{
// properties
// int or other type...
public int ToDays()
{
// return a property
return something;
}
// int or other type...
public int ToHours()
{
// return a property
return something;
}
}
你可以调用你的结果:
var myData = Work.GetWork().ToDays()//Returns work days
var myOtherData =Work.GetWork().ToHour();//Returns work hours
(确保GetWork()总是返回非null的东西)