gpt4 book ai didi

c# - 重载没有参数的方法

转载 作者:太空宇宙 更新时间:2023-11-03 22:57:18 24 4
gpt4 key购买 nike

我有一个方法的 2 个实现,它们应该在两个实现上做几乎相同的事情。

第一个将页面上的 ASP GridView 控件与所选数据绑定(bind):

// Bind the GridView with the data.
private void LoadArticles()
{
List<ListArticleViewModel> model = new List<ListArticleViewModel>();

// Query the database and get the data.

GridView1.DataSource = model;
GridView1.DataBind();
}

第二种实现是返回一个与 Enumerable 具有相同数据的列表:

private IEnumerable<ListArticleViewModel> LoadArticles()
{
List<ListArticleViewModel> model = new List<ListArticleViewModel>();

// Query the database and get the data.

return model.AsEnumerable();
}

显然重载在这里不起作用,因为签名不区分返回类型。

参见:https://learn.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/methods

A return type of a method is not part of the signature of the method for the purposes of method overloading.

这让我有点进退两难,因为我实际上并不需要为此设置参数,那么我该如何重载它并使其正常工作呢?

我是否应该为该方法使用不同的名称?

最佳答案

从技术角度来看,重载与应用程序的工作方式无关。没有真正的理由希望几种不同的方法具有相同的名称,唯一的异常(exception)是开发人员可读性

您可以将这些方法命名为 Superman()Batman(),这不会改变应用程序的工作方式。就编译器而言,名称无关紧要。

所以对您的问题的简短回答是:不要给这些方法起相同的名字!
特别是如果他们做不同的事情,给他们起同样的名字只会增加困惑。

关于c# - 重载没有参数的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44780231/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com