Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#开关表达式是否可以简单地用于避免输入中断命令?_C# - Fatal编程技术网

C#开关表达式是否可以简单地用于避免输入中断命令?

C#开关表达式是否可以简单地用于避免输入中断命令?,c#,C#,我有这个代码,我想知道。是否可以将其更改为使用新的C#表达式,以消除对中断的需要 switch (reposition) { case (int)POS.First: cIndex = 0; break; case (int)POS.Last: cIndex = cIndexLast; break; case (int)POS.Prev: cIndex--; break; case (int)POS.Next: cIndex++; break; } reposit

我有这个代码,我想知道。是否可以将其更改为使用新的C#表达式,以消除对
中断的需要

switch (reposition)
{
    case (int)POS.First: cIndex = 0; break;
    case (int)POS.Last: cIndex = cIndexLast; break;
    case (int)POS.Prev: cIndex--; break;
    case (int)POS.Next: cIndex++; break;
}
reposition = null;
对霍根的回应


唯一的问题是你不能使用
--
++

cIndex = (POS)resposition switch
{
   POS.First =>  0,
   POS.Last  => cIndexLast,
   POS.Prev  => cIndex-1,
   POS.Next  => cIndex+1
};
关于未涵盖的重新评论-这里我们将对POS进行铸造,以便涵盖POS中的所有案例。在此之前,您应该编写代码,以检查并查看“重新定位”的数值是否在pos的范围内。(或者,如果您编写代码,则无需担心。)

你可以用

if (POS.IsDefined(typeof(POS), resposition) { ... }

帽子提示

非常感谢,Hit给了我一条消息,说开关表达式不能处理所有可能的输入。你对我如何解决这个问题有什么建议吗?谢谢什么是POS?你似乎没有涵盖其中所有可能的统计员。如果您不想涵盖任何其他内容,请使用下划线作为默认值:
\u=>throw new NotSupportedException()
public enum POS{First=0,Prev=1,Next=2,Last=3}我认为不需要强制转换为int,也许这会让您感到厌烦。