为什么不是short b=a+1;而是b =(short)(a + 1);

问题遇到的现象和发生背景

short变量的定义

问题相关代码,请勿粘贴截图

short a = 32766;
short b =(short)(a + 1);
Console.WriteLine("b={0}", b);

运行结果及报错内容

问题1是:为什么不是short b=a+1;
问题2是:为什么控制台显示的时候,需要“b={0},0”

我的解答思路和尝试过的方法
我想要达到的结果

1 因为 a+1 溢出了
2因为你选择了格式化输出

问题1:a+1会被默认成 int 类型,需要强制转换
问题2:方法 public static void WriteLine (string format, object arg0); 是格式化输出