Когда вы вызываете функцию или метод любого пространства имен в .NET Framework (то же самое с Core), которое связано с операционной системой, .NET Framework вызывает API-функции операционной системы. Затем .NET получает значение, возвращаемое операционной системой, и возвращает его вам. По этой причине в разных операционных системах вы получите разные результаты.
Например, предположим, что GetProccessorType () (просто пример) является функцией DLL ОС WIndows, а get_cpu_type () (просто пример) является той же функцией для Linux. Оба они возвращают тип процессора. Но предположим, что GetProcessorType возвращает 0, если процессор 32-разрядный, и 1, если процессор 64-разрядный. Но в Linux get_cpu_type возвращает 32, если он 32-битный, и 64, если он 64-битный.
Теперь предположим, что в .NET Framework есть функция GetCPUMode () (фактически, в .NET Framework ее нет, просто пример) как в Linux, так и в Windows (вы должны знать это уже).
При вызове функции в Windows
....
public static void Main(){
Console.WriteLine(GetCPUMode());
}
....
Тогда, если ваш компьютер 64-битный, то 1 будет отображаться как вывод в Windows и 64 как вывод в Linux. Я думаю, вам придется сделать вторичный метод синтаксического анализа, чтобы удалить точку. Вы можете посмотреть методы обработки строк для этой цели.