ToUpper()方法不起作用
我从服务器传递一条消息,该服务器存储在一个名为strObject的字符串变量中。 我希望将strObject中的字符串转换为大写。 所以,我使用ToUpper()方法。 但是,当我添加一个断点并通过该行时,我的字符串不会转换为大写。 strObject变量将始终包含文本Task_status。 我希望将其转换为TASK_STATUS。 我错过了什么吗? 在下面发布我的相关代码: –
public void VerifyValue(String strObject, String strValue, int row) { strObject.ToUpper().Trim(); strValue.ToUpper().Trim(); switch (strObject) { case "TASK_STATUS": if (m_taskStatus.taskStatus.ToString() == strValue) { ExcelRecorder(null, row); } else { ExcelRecorder("The value [" + m_taskStatus.taskStatus.ToString() + "] does not match with the given value.", row); } } }
strObject.ToUpper()
以大写forms返回一个string
使用以下…
strObject = strObject.ToUpper().Trim();
System.String
是不可变的,因此您必须重新分配,如:
strObject = strObject.ToUpper().Trim();
所有操纵字符串的方法,保持原始字符串不变,并返回包含所需内容的新字符串。 您必须获取该返回值并将其分配给某些内容。
字符串是不可变的,因此调用字符串上的函数实际上不会更改字符串。 相反,他们返回字符串的修改副本。
这意味着您必须存储函数的返回值,例如原始变量。
这不起作用,因为字符串是不可变的,您必须将值strObject
strObject = strObject.ToUpper().Trim();
此外,如代码中所示, switch
没有做太多工作,您可以将其删除,除非这不是整个代码。
public void VerifyValue(String strObject, String strValue, int row) { //strObject.ToUpper().Trim(); //strValue.ToUpper().Trim(); if(strObject.ToUpper() == "TASK_STATUS") { if (m_taskStatus.taskStatus.ToString() == strValue.ToUpper()) { ExcelRecorder(null, row); } else { ExcelRecorder("The value [" + m_taskStatus.taskStatus.ToString() + "] does not match with the given value.", row); } } }
string.ToUpper()
返回一个值,使用它。
字符串是不可变的,你需要记住当你使用它们时。
您的方法将值插入到您调用各种工作方法的strObject和strValue变量,但这些工作方法不会更改已创建的不可变字符串变量。
虽然原始变量是不可变的,但您仍然可以设置新的变量(即使具有相同的名称)等于原始变量加上worker方法的结果。
所以你真正需要做的就是改变
strObject.ToUpper().Trim();
和
strValue.ToUpper().Trim();
至
strObject = strObject.ToUpper().Trim()
和
strValue = strvalue.ToUpper().Trim()
这个答案几乎与我的答案重复,但我认为两者都是正确的。
上述就是C#学习教程:ToUpper()方法不起作用分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/986803.html