-2

編集:

確認したい簡単な例:

string「0101」を含むがあります。

stringに変換せずに、それが少なくとも0101以上であるかどうかを確認したいのですが、これにより、 101にint変更されます。string

編集:

答えは次のようになります。

 private void VersionCheck(string version)
        {
            string firmwareVersion = version.Substring(0, 4);
            string biosVersion = version.Substring(4, 4);

            var isEqualOrHigherFirmwareVersion = string.Compare(firmwareVersion, Settings.MinimalFirmwareUnikon, CultureInfo.InvariantCulture, CompareOptions.None) >= 0;

        if (!isEqualOrHigherFirmwareVersion)
        {
            _serial.ClosePortConnection();
            DisplayLog("CLOCK: Firmware NOT OK : Unsupported version");
        MessageBox.Show("Unsupported clock Firmware!", "Firmware", MessageBoxButtons.OK, MessageBoxIcon.Error);
        }
        else
        {
            DisplayLog("CLOCK: Firmware OK : v" + firmwareVersion.ToString());
        }

        var isEqualOrHigherBiosVersion = string.Compare(biosVersion,     `Settings.MinimalBiosUnikon, CultureInfo.InvariantCulture, CompareOptions.None) >= 0;`

        if (!isEqualOrHigherBiosVersion)
        {
            _serial.ClosePortConnection();
            DisplayLog("CLOCK: BIOS NOT OK : Unsupported version");
            MessageBox.Show("Unsupported clock BIOS version!", "BIOS", MessageBoxButtons.OK, MessageBoxIcon.Error);
        }
        else
        {
            DisplayLog("CLOCK: BIOS OK : v" + biosVersion.ToString());
        }
    }
4

1 に答える 1

2
var input = "0102";
var supportedVersion = "0101";
var isGreaterOrHigher = string.Compare(input, supportedVersion, 
                    CultureInfo.InvariantCulture, CompareOptions.None) >= 0;

しかし、何が問題になっていint.Parse/int.TryParseますか?

于 2013-03-11T13:13:12.667 に答える