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

メソッドのシグネチャを変更して、プレーンな Enum ではなく値CreateFileを期待するようにします。SupportedPermissions

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 に答える
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 に答える