C# 在中使用枚举值作为属性

C# 在中使用枚举值作为属性,c#,wpf,enums,C#,Wpf,Enums,我的枚举如下: private enum MovieData { Name, Type, Size, Description, ReleaseDate }; 现在我想使用enum的值作为属性名 public string MovieData.Name { get { return name; } set { name = value;

我的枚举如下:

private enum MovieData { Name, Type, Size, Description, ReleaseDate };
现在我想使用enum的值作为属性名

public string MovieData.Name
    {
        get
        {
            return name;
        }
        set
        {
            name = value;                                
        }
    }
其他人也一样,名称是一个属性。all的返回类型应为string,并且我希望仅使用Name而不是MovieData.Name访问属性

我怎样才能做到这一点呢?

我不确定你的问题是什么,但正如@crashmstr所评论的。。看起来不需要枚举,只需要一个类来保存这些属性

你可以用任何方法,但这不是一个好的做法 我不知道你想让二传手做什么

要返回字符串还是枚举


但我仍然不清楚你在问什么。

问题是:你为什么要这样做?你能再多写一些吗?我不太明白,公共字符串MovieData.Name是无效的C。你能举一个更广泛的例子说明你的意思吗?如何使用它,等等。听起来您根本不需要枚举,但MovieData应该是一个具有公共字符串名称{get;set;}等属性的类。@UmairJameel您可以拥有枚举类型的属性。public enum MovieCat{恐怖、浪漫、喜剧}->public MovieCat Category{get;set;}@UmairJameel我想你需要和你的指导老师谈谈,明确他们的意思,因为你不理解enum在C中是如何工作的。enum用于生成一种命名的值范围,如我上面的示例所示。您可以获得字符串值,但有用之处在于按原样使用枚举。
public string Name
        {
            get
            {
                return MovieData.Name.ToString();
            }
        }

        public string Type
        {
            get
            {
                return MovieData.Type.ToString();
            }
        }

        public string Size
        {
            get
            {
                return MovieData.Size.ToString();
            }
        }

        public string Description
        {
            get
            {
                return MovieData.Description.ToString();
            }
        }

        public string ReleaseDate
        {
            get
            {
                return MovieData.ReleaseDate.ToString();
            }
        }
private class SomeClass
{
    private MovieData _data;

    public MovieData Data { get { return _data; } set { _data = value; } }
    public string DataString 
    { 
        get { return _data.ToString(); }
        set {
            switch (value){
                case "Name":
                    _data = MovieData.Name;
                    break;
                case "Type":
                    _data = MovieData.Type;
                    break;
                // etc.
            }
        }
    }
}