簡體   English   中英

傳入枚舉作為方法參數

[英]Pass in an enum as a method parameter

我宣布了一個枚舉:

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?

更改CreateFile方法的簽名以期望SupportedPermissions值而不是plain 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);

如果要傳入要使用的值,則必須使用聲明的枚舉類型並直接使用提供的值:

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

首先將方法參數Enum supportedPermissions更改為SupportedPermissions supportedPermissions

然后像這樣創建你的文件

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

對你的方法的調用應該是

CreateFile(id, name, description, SupportedPermissions.basic);
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;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM