JAVA的Integer.byteValue 用C#怎么写?为什么175输出是-81

JAVA代码如何翻译成C#

public class Main {
public static void main(String[] args) {
List<Byte> thumbList = new ArrayList<>();
Integer int_date= 175;
byte a = int_date.byteValue();
thumbList.add(a);
System.out.println(a);
Integer int_date2= 203;
byte b = int_date2.byteValue();
thumbList.add(b);
System.out.println(b);
Integer int_date3= 42;
byte c = int_date3.byteValue();
thumbList.add(c);
System.out.println(c);
}
}

JAVA的输出结果是
-81
-53
42
换成C#怎么写。。C#没有Integer 请帮忙翻译成C# 谢谢

using System;
using System.Collections.Generic;

namespace ConsoleApp
{
    internal class Program
    {
        static void Main(string[] args)
        {
            var thumbList = new List<sbyte>();  // C#中使用System.Collections.Generic.List作为列表泛型

            var intDate = 175;
            var a = (sbyte)intDate;  // 注意,C#中byte是无符号8位整数,sbyte是有符号8位整数;Java中,题主所说的byteValue是将int转为(Java的)byte,也就是C#的sbyte,强转类型就行了。
            thumbList.Add(a);
            Console.WriteLine(a);

            var intDate2 = 203;
            var b = (sbyte)intDate2;
            thumbList.Add(b);
            Console.WriteLine(b);

            var intDate3 = 42;
            var c = (sbyte)intDate3;
            thumbList.Add(c);
            Console.WriteLine(c);
            
            Console.ReadKey();
        }
    }
}

之所以会出现负数是因为溢出,Java中byte的范围是-128~127,超出了范围就会回到负数继续计数,举个例子如果是129,转为byte就是-127,比127多了2,所以回到-128计数。