我不能表明我做错了什么 [英] I Cant Show Out Put What I Do Wrong

查看:129
本文介绍了我不能表明我做错了什么的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

IPNetwork ipnetwork = IPNetwork.Parse(item);
                        /*Log.Text = "First Ip: " + ipnetwork.FirstUsable;
                        Log.Text = "Last Ip: " + ipnetwork.LastUsable;*/
                        startIP = "" + ipnetwork.FirstUsable;
                        lastIp = "" + ipnetwork.LastUsable;

                        
                        int iOne = 255;
                        int iTow = 255;
                        int iThree = 255;
                        int iFour = 255;
                        string[] tokens = startIP.Split('.');
                        int value1 = Int32.Parse(tokens[0]);   // 192
                        int value2 = Int32.Parse(tokens[1]);   // 168
                        int value3 = Int32.Parse(tokens[2]);   // 0
                        int value4 = Int32.Parse(tokens[3]);   // 1

                        string[] tokensTow = lastIp.Split('.');
                        int valueOne = Int32.Parse(tokens[0]);   // 192
                        int valueTow = Int32.Parse(tokens[1]);   // 168
                        int valueThree = Int32.Parse(tokens[2]);   // 0
                        int valueFour = Int32.Parse(tokens[3]);   // 1


                        if (value3 == valueThree)
                        {
                            for (iOne = value4; iOne < valueFour; iOne++)
                            {
                                string IpOne = value1 + "." + value2 + "." + value3 + "." + iOne + "\n";
                                Enumurator.Text = IpOne + "\n";
                            }
                        }

推荐答案

首先用调试器查看代码,然后按照它查看确切地说发生了什么。

然后,你会发现它很简单:

Start by looking at your code with teh debugger, and follow it through to see exactly what is happening.
Then, you will see that it's quite simple:
string[] tokens = startIP.Split('.');
int value1 = Int32.Parse(tokens[0]);   // 192
int value2 = Int32.Parse(tokens[1]);   // 168
int value3 = Int32.Parse(tokens[2]);   // 0
int value4 = Int32.Parse(tokens[3]);   // 1

string[] tokensTow = lastIp.Split('.');
int valueOne = Int32.Parse(tokens[0]);   // 192
int valueTow = Int32.Parse(tokens[1]);   // 168
int valueThree = Int32.Parse(tokens[2]);   // 0
int valueFour = Int32.Parse(tokens[3]);   // 1



您需要使用第二次拆分的结果,而不是第一次拆分:


You need to use the result of the second split, instead of the first split again:

string[] tokens = startIP.Split('.');
int value1 = Int32.Parse(tokens[0]);   // 192
int value2 = Int32.Parse(tokens[1]);   // 168
int value3 = Int32.Parse(tokens[2]);   // 0
int value4 = Int32.Parse(tokens[3]);   // 1

string[] tokensTow = lastIp.Split('.');
int valueOne = Int32.Parse(tokensTow [0]);   // 192
int valueTow = Int32.Parse(tokensTow [1]);   // 168
int valueThree = Int32.Parse(tokensTow [2]);   // 0
int valueFour = Int32.Parse(tokensTow [3]);   // 1



不要忘记如果你在一个循环中重复设置相同的值,它将只包含循环退出时设置的最后一个值:


And don't forget that if you set the same value repeatedly in a loop, it will only ever contain the last value set when the loop exits:

for (iOne = value4; iOne < valueFour; iOne++)
{
    string IpOne = value1 + "." + value2 + "." + value3 + "." + iOne + "\n";
    Enumurator.Text = IpOne + "\n";
}

您可能希望在最后一行使用+ =而不是=。 (或者更好的是,StringBuilder)

It's possible that you want to use "+=" instead of "=" in that last line. (Or better, a StringBuilder)


这篇关于我不能表明我做错了什么的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆