gpt4 book ai didi

c# - 枚举类型作为构造函数中的参数

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

我正在制作一个文件对话框,需要能够将文件类型掩码作为构造函数的一部分传递。如果可能的话,我想将这些掩码存储为枚举。下面是一个示例:

public enum ImageFileMask {
Bmp,
Dds,
Dib,
Hdr,
Jpg,
Pfm,
Png,
Ppm,
Tga
}

然后我在选择文件时检查它是否属于使用以下行的文件掩码:

if (Enum.IsDefined(ImageFileMask.GetType(), extension))

(扩展名是所选文件的文件扩展名)。

这一切都运行良好,直到我决定我的文件对话框需要在不同时间接受不同的文件类型。我希望我可以通过构造函数传递任何枚举类型,以便在文件对话框中存储和评估。

问题是,我找不到一种方法让枚举类型在我的构造函数中被接受为参数。

new FileDialogMenu(ImageFileMask);

我总是得到以下错误:

ImageFileMask is a 'type' but is used like a 'variable'

我曾尝试更改构造函数以采用 Type,但这没有用。我正在尝试的是可能的吗?还是我需要采取不同的方法来存储 mask 。

最佳答案

如果我理解你的问题,你想将枚举类型传递给类的构造函数,如下所示:

class FileDialogMenu
{
readonly Type enumType;

public FileDialogMenu(Type enumType)
{
this.enumType = enumType;
}
}

如果是这样,您可以毫无问题地执行此操作:

new FileDialogMenu(typeof(ImageFileMask));

你可以做的(在你的 FileDialogMenu 类中):

if (Enum.IsDefined(enumType, extension))

至少我是这么理解的。

关于c# - 枚举类型作为构造函数中的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24469169/

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