C#整数解析/比较

mik*_*ike 0 c# visual-studio-2008

HttpWebRequest web;
        try
        {
            web = (HttpWebRequest)HttpWebRequest.Create("website.name");

            WebResponse Response = web.GetResponse();
            Stream WebStream = Response.GetResponseStream();
            StreamReader Reader = new StreamReader(WebStream);
            string data = Reader.ReadToEnd();

            Reader.Close();
            WebStream.Close();
            Response.Close();

            string[] ver = Regex.Split(data, "version=");

            if (int.Parse(ver[1]) == int.Parse(appVersion))
            {
                tss1.Text = "Status : You currently have the latest version";               
            }
            else
            {
                tss1.Text ="Status : A new version of app is available.";
                System.Diagnostics.Process.Start("website.name");
            } 
        }
        catch (Exception ex)
        {
            tss1.Text = "Status : Update check failed.";
            Debug.Write(ex.ToString());
        }
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用上面的代码连接到网页并下载应用程序的最新版本号,它做得很好.当我试图将网页上找到的数字与提供的数字进行比较时,我的问题就出现了 appVersion = Assembly.GetExecutingAssembly().GetName().Version.ToString();

Run*_*tad 6

您似乎想要检查正在运行的程序的版本是否低于您刚刚下载的版本字符串.

您可以只进行版本比较,而不是使用整数比较.从您下载的字符串创建一个Version对象:var downloadedVersion = new Version(versionStringDownloadedFromWeb);并将其与程序集版本进行比较:

if (Assembly.GetExecutingAssembly().GetName().Version < downloadedVersion) 
{
  // Your version is outdated!
}
Run Code Online (Sandbox Code Playgroud)

您可以这样做,因为Version对象实现了IComparable接口.