48

我已经声明了一个枚举:

public enum SupportedPermissions
{
    basic,
    repository,
    both
}

我也有这样的 POCO:

public class File
{
    public string Id { get; set; }
    public string Name { get; set; }
    public string Description { get; set; }
    public SupportedPermissions SupportedPermissions { get; set; }      
}

现在我想创建一个方法,我可以用它来创建一个新的 File 对象:

public string CreateFile(string id, string name, string description, Enum supportedPermissions)
{
    file = new File
    {  
        Name = name,
        Id = id,
        Description = description,
        SupportedPermissions = supportedPermissions.basic
    };

    return file.Id;
}

我将如何为枚举创建参数,以及如何在我的伪代码中分配它,SupportedPermissions = supportedPermissions.basic以便我的 File 实例设置了 SupportedPermissions?

4

4 回答 4

51

更改CreateFile方法的签名以期望一个SupportedPermissions值而不是普通的 Enum。

public string CreateFile(string id, string name, string description, SupportedPermissions supportedPermissions)
{
    file = new File
    {  
        Name = name,
        Id = id,
        Description = description,
        SupportedPermissions = supportedPermissions
    };

    return file.Id;
}

然后,当您调用您的方法时,您将SupportedPermissions值传递给您的方法

  var basicFile = CreateFile(myId, myName, myDescription, SupportedPermissions.basic);
于 2013-09-23T09:08:54.847 回答
6

如果要传入要使用的值,则必须使用您声明的枚举类型并直接使用提供的值:

public string CreateFile(string id, string name, string description,
              /* --> */  SupportedPermissions supportedPermissions)
{
    file = new File
    {  
        Name = name,
        Id = id,
        Description = description,
        SupportedPermissions = supportedPermissions // <---
    };

    return file.Id;
}

如果您想使用固定值,则根本不需要任何参数。相反,直接使用枚举值。语法类似于类的静态成员:

public string CreateFile(string id, string name, string description) // <---
{
    file = new File
    {  
        Name = name,
        Id = id,
        Description = description,
        SupportedPermissions = SupportedPermissions.basic // <---
    };

    return file.Id;
}
于 2013-09-23T09:09:26.730 回答
6

首先将方法参数更改Enum supportedPermissionsSupportedPermissions supportedPermissions.

然后像这样创建你的文件

file = new File
{  
    Name = name,
    Id = id,
    Description = description,
    SupportedPermissions = supportedPermissions
};

并且对您的方法的调用应该是

CreateFile(id, name, description, SupportedPermissions.basic);
于 2013-09-23T09:11:04.810 回答
0
public string CreateFile(string id, string name, string description, SupportedPermissions supportedPermissions)
{
    file = new File
    {  
       Name = name,
        Id = id,
        Description = description,
        SupportedPermissions = supportedPermissions
    };

    return file.Id;
}
于 2013-09-23T09:09:33.123 回答