Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在C#类中设置嵌套/链接函数_C# - Fatal编程技术网

如何在C#类中设置嵌套/链接函数

如何在C#类中设置嵌套/链接函数,c#,C#,这是我试图设置的 我的班级叫Inventory 我有一个名为List_Departments()的静态函数 我想能够添加一个额外的功能来修改以前的 例如:Inventory.List_Departments().ToHTML()将返回一个HTML格式的字符串,其中包含来自List_Departments()的数据 如果可能的话,我想为另一个函数重用相同的代码,比如List_Categories() 我真的很想在这件事上朝着正确的方向推动一下。我似乎找不到正确的术语/搜索词来获取我需要的信息。非常

这是我试图设置的

我的班级叫Inventory 我有一个名为List_Departments()的静态函数

我想能够添加一个额外的功能来修改以前的

例如:Inventory.List_Departments().ToHTML()将返回一个HTML格式的字符串,其中包含来自List_Departments()的数据

如果可能的话,我想为另一个函数重用相同的代码,比如List_Categories()


我真的很想在这件事上朝着正确的方向推动一下。我似乎找不到正确的术语/搜索词来获取我需要的信息。非常感谢你的帮助,对于这个有点愚蠢的问题我很抱歉

基本上,您的函数List_Departments()和List_Categories正在返回一些类型化对象,对吗?也就是说,返回的对象必须在其类定义中创建一个名为ToHTML()的方法。如果这两个函数返回相同类型的对象,则只需定义一次。如果它们返回两个不同的类型,则必须在两个返回类型类定义上定义ToHTML()方法

除非我在这里遗漏了什么,否则这两个函数不需要静态修饰符


如果返回的类型是您没有源代码访问权限的类型,那么您可以为每个类型定义一个扩展方法,该方法将处理要返回的对象类型,并可以为其显示ToHTML()

基本上,您的函数List_Departments()和List_Categories正在返回一些类型化对象,对吗?也就是说,返回的对象必须在其类定义中创建一个名为ToHTML()的方法。如果这两个函数返回相同类型的对象,则只需定义一次。如果它们返回两个不同的类型,则必须在两个返回类型类定义上定义ToHTML()方法

除非我在这里遗漏了什么,否则这两个函数不需要静态修饰符

如果返回的类型是您没有源代码访问权限的类型,那么您可以为每个类型定义一个扩展方法,该方法将处理要返回的对象类型,并可以为其显示ToHTML()

函数是一个作用于从
List\u Departments()返回的类型的函数。

例如:

如果
Inventory.GetProduct(0)
返回一个int。您可以使用
Inventory.GetProduct(0).ToString()
,因为ToString()是一个整数类型的方法

为此,
List\u Departments()
必须返回一个自定义对象,该对象具有一个名为ToHTML()的方法

ToHTML()
函数是一个作用于从
List\u Departments()

例如:

如果
Inventory.GetProduct(0)
返回一个int。您可以使用
Inventory.GetProduct(0).ToString()
,因为ToString()是一个整数类型的方法

为此,
List\u Departments()
必须返回一个自定义对象,该对象具有一个名为ToHTML()的方法


听起来你指的是

听起来你指的是

你需要让
列表\u Departments
方法返回一个具有
到html
方法的对象

根据具体方法返回的内容,您可以创建一个名为ObjectList的类,该类将有一个
ToHtml
方法,并有
ListDepartments
ListCategories
返回它的实例


或者,特别是如果您的方法返回现有类,如
数据表
,您可以为该类创建一个名为
ToHtml
的类。您需要使
List\u Departments
方法返回一个具有
ToHtml
方法的对象

根据具体方法返回的内容,您可以创建一个名为ObjectList的类,该类将有一个
ToHtml
方法,并有
ListDepartments
ListCategories
返回它的实例


或者,特别是如果您的方法返回现有的类,例如
数据表
,您可以为该类创建一个名为
ToHtml
的类。您没有提供太多信息,但对我来说,使用似乎是一个好方法。 将字符串转换为int的示例:

public static class StringMethods {
    public static int ToInt(this String subject) {
        int result;
        int.TryParse(subject, result);
        return result;
    }
}
假设
列出部门
返回
部门

public static class DepartmentMethods {
    public static string ToHtml(this Department subject) {
        // Whatever you want to do.
    }
}

如果您确实可以访问由
列表\u Departments
返回的类型的内部,您也可以在那里添加到HTML。

您没有提供太多信息,但使用似乎是一种很好的方法。 将字符串转换为int的示例:

public static class StringMethods {
    public static int ToInt(this String subject) {
        int result;
        int.TryParse(subject, result);
        return result;
    }
}
假设
列出部门
返回
部门

public static class DepartmentMethods {
    public static string ToHtml(this Department subject) {
        // Whatever you want to do.
    }
}

如果您确实有权访问由
列表\u部门返回的类型的内部结构,您也可以将其添加到HTML中。

您要查找的搜索词是方法链接:-)

这与jQuery的功能类似。基本上,您可以创建一个对象,该对象包含您希望能够链接的所有方法。然后,使用构建器模式,您可以将所有调用链接在一起,直到调用某个最终的“result”方法(在您的例子中是ToHtml)


您要查找的搜索词是方法链接:-)

这与jQuery的功能类似。基本上,您可以创建一个对象,该对象包含您希望能够链接的所有方法。然后,使用构建器模式,您可以将所有调用链接在一起,直到调用某个最终的“result”方法(在您的例子中是ToHtml)


应用程序中的某些设置功能需要所有部门/类别的列表。稍后将有库存对象,但为了方便起见,我希望能够使用
inventory.ListDepartments().ToHtml();