函数参数-如何使用预定义列表而不是字符串值

蒂姆·安德鲁斯

这应该很简单,但我似乎无法弄清楚。我有一个向API发送数据的功能:

public bool UpdateCustomer(int customerid, string status) 
{
     apicall(customerid, status);
     return true;
}

UpdateCustomer(1234, "shipped")

这很好。但是API有一个预定义的可接受状态列表,我不想让调用该函数的人将其正确使用,我想创建某种枚举或类似的东西:

public bool UpdateCustomer(int customerid, Status status) 
{
     apicall(customerid, status);
     return true;
}

UpdateCustomer(1234, Statuses.Shipped)

我想将该值传递给其实际接受值“已发货”的API。

我尝试用静态字符串创建一个类:

public class Status
{
    public static string Cancelled = "cancelled";
    public static string Unsubmitted = "unsubmitted";
    public static string Saved = "saved";
    public static string Submitted = "submitted";
    public static string Arrived = "arrived";
    public static string Completed = "completed";
    public static string Shipped = "shipped";
}

但是当我去调用UpdateCustomer(1234,Status.Shipped)时,它说它不能从字符串转换为Status。我已经用枚举完成了很多次,但是我不能使用枚举,因为它们仅支持int值。

使用字符串值(或除整数以外的任何东西)最简单的方法是什么?

编辑:如果我将函数设置为public bool UpdateCustomer(int customerid,string status)并使用UpdateCustomer(1234,Statuses.Shipped)调用它,它确实可以工作,但是这违反了傻瓜式验证的目的,您仍然可以传递任何字符串想要的价值。我真的希望函数参数为Status的类型,以便它强制调用者使用预定义的状态之一。

emsimpson92

这可以用字典来完成。假设您有一个包含3个值的“状态”枚举。CompleteIncompleteAbandoned然后,您将要创建一个字典以用作查找表。

Dictionary<Status, string> statusDict = new Dictionary<Status, string>()
{
  { Status.Complete, "Complete" },
  { Status.Incomplete, "Incomplete" },
  { Status.Abandoned, "Abandoned" }
};

当您从他们那里收到状态枚举(CustomerStatus)时,对API调用所需要做的就是...

apicall(customerID, statusDict[CustomerStatus]);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用预定义的字符串和参数从宏构建函数名称

来自分类Dev

如何在 bash 函数的字符串中使用参数

来自分类Dev

使用函数参数创建字符串参数

来自分类Dev

在不使用任何预定义函数的情况下在C中进行字符串匹配?

来自分类Dev

基于长度对字符串元素进行排序,而无需使用Java预定义函数?

来自分类Dev

如何根据Typescript中的字符串参数定义函数的参数类型?

来自分类Dev

将数组的元素作为参数列表传递给函数(而不是组合字符串)

来自分类Dev

如何修改forloop函数以使用SQL查询而不是预定义的值

来自分类Dev

如何将CONSTANT值定义为函数,以便其域为模型值而不是字符串?

来自分类Dev

python函数的参数列表中的字符串

来自分类Dev

从字符串中解析函数列表及其参数

来自分类Dev

如何在以函数为参数的函数的参数内定义函数

来自分类Dev

如何在以函数为参数的函数的参数内定义函数

来自分类Dev

使用函数作为参数的函数

来自分类Dev

从字符串指定函数参数

来自分类Dev

在函数参数中传递字符串

来自分类Dev

如何使Robot Framework函数接受参数作为字符串而不是默认的Unicode类型

来自分类Dev

我的列表中的打印函数返回int值,而不是列表中的字符串

来自分类Dev

如何定义带参数或不带参数的函数?

来自分类Dev

如何连接函数的参数以形成字符串?

来自分类Dev

如何在函数中获取参数字符串?

来自分类Dev

如何使函数将其参数转换为字符串

来自分类Dev

如何在onclick函数中传递字符串参数

来自分类Dev

如何读取作为 C 中函数参数的字符串?

来自分类Dev

如何在CAPL中将字符串作为用户定义的函数参数传递

来自分类Dev

如何使函数参数可选?

来自分类Dev

使用字符串列表执行带参数的函数

来自分类Dev

如何从参数列表中将Q函数调用重组为字符串?

来自分类Dev

使用常量字符串作为Enum构造函数参数

Related 相关文章

  1. 1

    使用预定义的字符串和参数从宏构建函数名称

  2. 2

    如何在 bash 函数的字符串中使用参数

  3. 3

    使用函数参数创建字符串参数

  4. 4

    在不使用任何预定义函数的情况下在C中进行字符串匹配?

  5. 5

    基于长度对字符串元素进行排序,而无需使用Java预定义函数?

  6. 6

    如何根据Typescript中的字符串参数定义函数的参数类型?

  7. 7

    将数组的元素作为参数列表传递给函数(而不是组合字符串)

  8. 8

    如何修改forloop函数以使用SQL查询而不是预定义的值

  9. 9

    如何将CONSTANT值定义为函数,以便其域为模型值而不是字符串?

  10. 10

    python函数的参数列表中的字符串

  11. 11

    从字符串中解析函数列表及其参数

  12. 12

    如何在以函数为参数的函数的参数内定义函数

  13. 13

    如何在以函数为参数的函数的参数内定义函数

  14. 14

    使用函数作为参数的函数

  15. 15

    从字符串指定函数参数

  16. 16

    在函数参数中传递字符串

  17. 17

    如何使Robot Framework函数接受参数作为字符串而不是默认的Unicode类型

  18. 18

    我的列表中的打印函数返回int值,而不是列表中的字符串

  19. 19

    如何定义带参数或不带参数的函数?

  20. 20

    如何连接函数的参数以形成字符串?

  21. 21

    如何在函数中获取参数字符串?

  22. 22

    如何使函数将其参数转换为字符串

  23. 23

    如何在onclick函数中传递字符串参数

  24. 24

    如何读取作为 C 中函数参数的字符串?

  25. 25

    如何在CAPL中将字符串作为用户定义的函数参数传递

  26. 26

    如何使函数参数可选?

  27. 27

    使用字符串列表执行带参数的函数

  28. 28

    如何从参数列表中将Q函数调用重组为字符串?

  29. 29

    使用常量字符串作为Enum构造函数参数

热门标签

归档