字符串似乎没有 return
String doesnt seem to return
NewString
中的字符串似乎没有 return 到 UserType()
的功能。在那里声明那个变量是错误的吗?我想将 return 值设置为 UserType
以便我可以在另一个函数中使用它,例如 Vowel
函数。
using System;
namespace prob1{
class Pogram{
static void Main(string[] args){
UserType();
}
static void Menu(){
Console.WriteLine("\nChoice of Operation:");
Console.WriteLine("1. Enter new/another string");
Console.WriteLine("2. Count vowels in string and display result");
Console.WriteLine("3. Count consonants in string and display result");
Console.WriteLine("4. Convert string to uppercase letters and display");
Console.WriteLine("5. Convert string to lowercase letters and display");
Console.WriteLine("6. Count number of words in the string");
Console.WriteLine("7. Exit Program");
}
static void UserType(){
string mainString = System.String.Empty;
Menu();
int menuChoice;
menuChoice = Int32.Parse(Console.ReadLine());
switch (menuChoice)
{
case 1:
NewString(mainString);
UserType();
break;
case 2:
Vowel(mainString);
UserType();
break;
default:
break;
}
}
static string NewString(string mainString){
Console.WriteLine("Enter a new string: ");
mainString = Console.ReadLine().ToLower();
return mainString;
}
static void Vowel(string mainString){
int total = 0;
var vowels = new HashSet<char> { 'a', 'e', 'i', 'o', 'u' };
for (int finder = 0; finder < mainString.Length; finder++)
{
if (vowels.Contains(mainString[finder]))
{
total++;
}
}
Console.WriteLine("total: " + total);
Console.ReadKey(true);
}
}
}
您调用了 NewString(mainString)
方法,但没有将方法的返回值分配回 mainString
。因此在 UserType
方法中,mainString
值不会根据 NewString(mainString)
.
的结果进行更新
case 1:
NewString(mainString);
Console.WriteLine("test menu string: "+ mainString);
UserType();
break;
您需要的是将结果 NewString(mainString)
分配回 mainString
。
mainString = NewString(mainString);
您需要向 UserType 添加一个默认值为 String.Empty() 或 "" 的字符串参数 -
static void UserType(string inputString = ""){...}
检查 inputString 是否为 NullOrEmpty,如果是,则显示主菜单。如果不为空,则将其传入Vowel()并将其return值保存到一个变量中以供再次使用-
var userString = Vowel(inputString);
然后在您的 switch 语句中,当值 returned 到 userString 时,您可以像这样将其传递到 UserType -
UserType(userString)
NewString
中的字符串似乎没有 return 到 UserType()
的功能。在那里声明那个变量是错误的吗?我想将 return 值设置为 UserType
以便我可以在另一个函数中使用它,例如 Vowel
函数。
using System;
namespace prob1{
class Pogram{
static void Main(string[] args){
UserType();
}
static void Menu(){
Console.WriteLine("\nChoice of Operation:");
Console.WriteLine("1. Enter new/another string");
Console.WriteLine("2. Count vowels in string and display result");
Console.WriteLine("3. Count consonants in string and display result");
Console.WriteLine("4. Convert string to uppercase letters and display");
Console.WriteLine("5. Convert string to lowercase letters and display");
Console.WriteLine("6. Count number of words in the string");
Console.WriteLine("7. Exit Program");
}
static void UserType(){
string mainString = System.String.Empty;
Menu();
int menuChoice;
menuChoice = Int32.Parse(Console.ReadLine());
switch (menuChoice)
{
case 1:
NewString(mainString);
UserType();
break;
case 2:
Vowel(mainString);
UserType();
break;
default:
break;
}
}
static string NewString(string mainString){
Console.WriteLine("Enter a new string: ");
mainString = Console.ReadLine().ToLower();
return mainString;
}
static void Vowel(string mainString){
int total = 0;
var vowels = new HashSet<char> { 'a', 'e', 'i', 'o', 'u' };
for (int finder = 0; finder < mainString.Length; finder++)
{
if (vowels.Contains(mainString[finder]))
{
total++;
}
}
Console.WriteLine("total: " + total);
Console.ReadKey(true);
}
}
}
您调用了 NewString(mainString)
方法,但没有将方法的返回值分配回 mainString
。因此在 UserType
方法中,mainString
值不会根据 NewString(mainString)
.
case 1:
NewString(mainString);
Console.WriteLine("test menu string: "+ mainString);
UserType();
break;
您需要的是将结果 NewString(mainString)
分配回 mainString
。
mainString = NewString(mainString);
您需要向 UserType 添加一个默认值为 String.Empty() 或 "" 的字符串参数 -
static void UserType(string inputString = ""){...}
检查 inputString 是否为 NullOrEmpty,如果是,则显示主菜单。如果不为空,则将其传入Vowel()并将其return值保存到一个变量中以供再次使用-
var userString = Vowel(inputString);
然后在您的 switch 语句中,当值 returned 到 userString 时,您可以像这样将其传递到 UserType -
UserType(userString)