Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么字符串类型不转换为int类型?_C#_Asp.net Mvc - Fatal编程技术网

C# 为什么字符串类型不转换为int类型?

C# 为什么字符串类型不转换为int类型?,c#,asp.net-mvc,C#,Asp.net Mvc,我想加两个数字。我从文本框中的按钮获取值。我还成功地将字符串拆分为子字符串,并将这些子字符串的值存储在变量中。但我无法将字符串类型转换为整数类型。这会导致连接而不是添加。 注: 我正在使用MVC来执行此任务。在模型中,value1和value2是模型中的字符串类型 以下是我的代码片段: if (button == "1"){ if (model.textBox == "" || model.textBox == null || model.textBox.ToLower().Contai

我想加两个数字。我从文本框中的按钮获取值。我还成功地将字符串拆分为子字符串,并将这些子字符串的值存储在变量中。但我无法将字符串类型转换为整数类型。这会导致连接而不是添加。 注: 我正在使用MVC来执行此任务。在模型中,value1和value2是模型中的字符串类型 以下是我的代码片段:

if (button == "1"){
    if (model.textBox == "" || model.textBox == null || model.textBox.ToLower().Contains("please enter value")){
        model.textBox = "1";
    } else {
        model.textBox += "1";
    }
}
if (button == "2") {
    if (model.textBox == "" && model.textBox == null) {
        model.textBox = "2";
    } else {
        model.textBox += "2";
    }
if (button == "+") {
    if (model.textBox == "" && model.textBox == null){
        model.errormsg = "Please enter a number ";
    } else {
        model.textBox += "+";
    }
if (button == "=") {
    if (model.textBox.Contains("+")) {
        model.value1 = (model.textBox.Split('+'))[0];
        int value1 = int.Parse(model.value1);
        model.value2 = (model.textBox.Split('+'))[1];
        int value2 = int.Parse(model.value2);
         model.textBox = model.value1 + model.value2;
    }
return View(model); 
if (button == "=")
            {
                if (model.textBox.Contains("+"))
                {
                    model.value1 = (model.textBox.Split('+'))[0];

                    model.value2 = (model.textBox.Split('+'))[1];

                    model.textBox1 = (int.Parse(model.value1) + int.Parse(model.value2)).ToString();


                }

如果我没弄错,你需要做的就是:

model.textBox = (value1 + value2).ToString();

model.textBox
的类型为
string
,因此,当您执行
model.textBox+=“1”唯一可能的操作是串联

要将它们添加为整数,首先需要将
文本框
转换为
int

类似于以下的方法将起作用:

model.textBox = (int.Parse(model.textBox) + 1).ToString();
尝试使用
int.Parse(textBox.Text)

如果字符串中有非数字字符,它将崩溃,但try-catch块无法修复这一点

希望这有帮助

 if (button == "=") {
    if (model.textBox.Contains("+")) {
        model.value1 = (model.textBox.Split('+'))[0];
        int value1 = int.Parse(model.value1);
        model.value2 = (model.textBox.Split('+'))[1];
        int value2 = int.Parse(model.value2);
         model.textBox = model.value1 + model.value2;
    }
将上述代码段替换为以下代码段:

if (button == "1"){
    if (model.textBox == "" || model.textBox == null || model.textBox.ToLower().Contains("please enter value")){
        model.textBox = "1";
    } else {
        model.textBox += "1";
    }
}
if (button == "2") {
    if (model.textBox == "" && model.textBox == null) {
        model.textBox = "2";
    } else {
        model.textBox += "2";
    }
if (button == "+") {
    if (model.textBox == "" && model.textBox == null){
        model.errormsg = "Please enter a number ";
    } else {
        model.textBox += "+";
    }
if (button == "=") {
    if (model.textBox.Contains("+")) {
        model.value1 = (model.textBox.Split('+'))[0];
        int value1 = int.Parse(model.value1);
        model.value2 = (model.textBox.Split('+'))[1];
        int value2 = int.Parse(model.value2);
         model.textBox = model.value1 + model.value2;
    }
return View(model); 
if (button == "=")
            {
                if (model.textBox.Contains("+"))
                {
                    model.value1 = (model.textBox.Split('+'))[0];

                    model.value2 = (model.textBox.Split('+'))[1];

                    model.textBox1 = (int.Parse(model.value1) + int.Parse(model.value2)).ToString();


                }

您添加模型值(类型为
string
),它将显示您声明的
int
值-
model.textBox=(value1+value2).ToString()我的值已经是字符串类型。我想把它们转换成整数。因此,必须添加值,而不是串联。是的,但是value1在中,还有value2-添加它们后,将对ToString()操作的总和产生影响。请提供更多帮助和详细信息。我没有得到想要的结果。它仍然连接值1和值2,而不是添加值1和值2。请告诉我您在哪里看到concatation?在哪个部分或代码段中?if(button==“=”){if(model.textBox.Contains(“+”){model.value1=(model.textBox.Split(+'))[0];model.value2=(model.textBox.Split(+'))[1];model.textBox=(model.value1+model.value2).ToString();}这个代码段给了我连接结果:如果输入的值是1和2,那么结果将是3,但这给了我结果12