小编Jan*_*Jan的帖子

最佳实践返回值与例外与Enum的比较

我试图找出具有多个结果值的方法的优点和缺点.

例如,我正在使用登录方法.如果登录成功,它将通过,否则我需要知道它失败的原因.

1.返回真或假(信息不足)

bool Login(string user, string password);
Run Code Online (Sandbox Code Playgroud)

2.如果成功则返回true,否则抛出异常

public class UnknownUserException : Exception { }
public class WrongPasswordException : Exception { }
bool Login(string user, string password);
Run Code Online (Sandbox Code Playgroud)

什么也没有.如果不成功则抛出异常

public class UnknownUserException : Exception { }
public class WrongPasswordException : Exception { }
void Login(string user, string password);
Run Code Online (Sandbox Code Playgroud)

4.返回枚举值

enum LoginResult
{
    Successful
    UnknownUser,
    WrongPassword
}
LoginResult Login(string user, string password);
Run Code Online (Sandbox Code Playgroud)

"登录"只是一个示例.我想知道不同实现的优点和缺点是什么,在哪些情况下它们或多或少是合适的.

c# enums login exception

13
推荐指数
2
解决办法
2850
查看次数

从构造函数中采用方法参数

我有一些需要很多参数的类.我刚刚创建了一个带有两个参数的例子来证明我的问题.

public class Zoo
{
    public List<Animal> Animals { get; set; }

    public Zoo()
    {
        Animals = new List<Animal>();
    }

    // Pass all parameters
    public void AddAnimal(string name, int age)
    {
        Animals.Add(new Animal(name, age));
    }

    // -> pseudo code <- Create the parameter reference automated -> pseudo code <-
    public void AddAnimal(params ...)
    {
        Animals.Add(new Animal(...));
    }
}

public class Animal
{
    public string Name { get; set; }
    public int Age { get; set; }

    public Animal(string name, int …
Run Code Online (Sandbox Code Playgroud)

c# generics parameters methods constructor

3
推荐指数
1
解决办法
206
查看次数

标签 统计

c# ×2

constructor ×1

enums ×1

exception ×1

generics ×1

login ×1

methods ×1

parameters ×1