gpt4 book ai didi

c# - 枚举扩展方法 – ToDataSource

转载 作者:行者123 更新时间:2023-11-30 19:51:14 24 4
gpt4 key购买 nike

我尝试向枚举添加扩展方法,将其转换为 DataTable,以便它可以绑定(bind)到工作正常的 DropDownList。


public enum Response
{
Yes = 1,
No = 2,
Maybe = 3
}<p></p>

<p>public static DataTable ToDataSource(this Enum e)
{
Type type = e.GetType();
DataTable dt = new DataTable();<br/>
dt.Columns.Add("value", typeof(Int32));
dt.Columns.Add("text", typeof(String));</p>

<pre><code>foreach (Int32 value in Enum.GetValues(type))
{
dt.Rows.Add(new object[] { value, Enum.GetName(type, value) });
}

return dt;
</code></pre>

<p>}
</p>
但是,有没有一种方法可以让我在枚举本身 (Response.ToDataSource) 上使用扩展方法,而不必使用它挂起一个值 Responce.Yes.ToDataSource?

我尝试创建一个新实例(Response new response, response.ToDataSource 但我收到一个构建错误,提示“它可能在访问之前未初始化”。

最佳答案

不幸的是你不能。扩展方法是一种功能,它允许您在类型的实例上调用新方法。它没有能力将这种能力赋予类型本身。

当我想添加一组方法添加类型级别时,我通常会创建一个名为 OriginalTypeNameUtil 的新静态类并在其中添加方法。例如 ResponseUtil。这样,当我键入原始类型名称时,类名称是可见的。

关于c# - 枚举扩展方法 – ToDataSource,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1395401/

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