2013-09-23 135 views
24

我已经宣布枚举:传递一个枚举方法参数

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; }  
} 

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

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; 
} 

我将如何创建枚举的参数,我将如何分配,像在我的鳕鱼伪e SupportedPermissions = supportedPermissions.basic这样我的File实例就有一个SupportedPermissions设置给它了吗?

+0

这是一个不好的问题吗?下调投票的原因? –

+2

在调用方法时传递参数中的SupportedPermissions.basic n将变量supportedPermissions设置为属性。希望它有帮助 – Akanksha

+0

downvote的原因是命名变量像Enum。 – tmighty

回答

28

更改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); 
4

如果你想在价值传递给使用,你必须使用你声明并直接枚举类型使用提供的值:

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; 
} 
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; 
} 
3
首先

改变方法参数Enum supportedPermissionsSupportedPermissions supportedPermissions

然后创建您的文件中像这样

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

和呼叫你的方法应该是

CreateFile(id, name, description, SupportedPermissions.basic); 
相关问题