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计数。