ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2019-11-21 15:07:36  阅读:760  来源: 互联网

标签:enums parameters c


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

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,但这没有用.我正在尝试的可能吗?还是我需要采取其他方法来存储面膜.

解决方法:

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

class FileDialogMenu
{
    readonly Type enumType;

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

如果是这样,您在执行此操作时没有问题:

new FileDialogMenu(typeof(ImageFileMask));

并且您可以做(在FileDialogMenu类内部):

if (Enum.IsDefined(enumType, extension))

嗯,至少这是我所了解的.

标签:enums,parameters,c
来源: https://codeday.me/bug/20191121/2052740.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有