2013-09-23 169 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); 
相關問題