方法的内容要单一
方法最忌讳的就是提示用户输入信息 用户输入信息应该在Main()方法中写
使用out参数
当使用一个方法时 需要返回多个相同类型的值时 可以考虑使用数组
当时当方法需要返回多个不同类型的值时 明显使用数组是不可行的 这个时候就要考虑使用out参数了
eg://验证登录信息 当账号密码输入正确 则 提示登录成功 账号输入错误则提示账号输入错误 密码输入错误提示密码输入错误 账号密码都输入错误则提示账号密码都不匹配
public static bool Login(string acount,string password ,out massage)//这里out参数修饰的massage参数是多余输出的参数
{
if(acount=="asd8423"&&password=="123456")
{
massage="登录成功!!";
return true;
}
else if(acount=="asd8423"){
massage="密码输入错误";
return false;
}
else if (password=="123456")
{
massage="账号输入错误";
return false;
}
else
{
massage="账号密码输入错误";
return false;
}
}
调用方法
static void Main(string [] args)
{
string acount="";
string password="";
bool judge=false;//接受输入从方法中返回的值
do
{
Console.WriteLine("请输入账号");
acount=Console.ReadLine();
Console.WriteLine("请输入密码");
password=Console.ReadLine();
string massage;//用out 修饰的的变量可以不用赋初始值 他可以从方法中得到数值
judge=Login(acount ,password,out massage);
if(judge==true)
{
Console.WriteLine(massage);
}
else
{
Console.WriteLine(massage);
}
}while(juage!=true);
Console.ReadKey();
}
使用ref参数
ref侧重于将参数带进方法 经过方法计算 然后将计算后的值带出来Main方法中需要带进方法的参数必须要赋初值 实参 形参的要改变得数值都要用ref修饰
C#中string类的运用
a.Equals() 比较两个字符串是否相等 与"=="相同 在c#中这两者都可以比较值相等 但严格来说 "=="比较的是两者的内存地址是否相等
b.Compare( string a ,string b) 比较两个字符串的大小 如果 a比b大 则返回 1 b比a大时 则返回-1 两个值相等时返回0
c.Substring(int startIndex,int length) 从字符串中截取一段子字符串 startindex 要截取的开始位置 length是子字符串的长度
d.Split(char symbol ) 切割字符串 symbol是要按照什么字符切割字符串
e.string.Join(string symbol,string [] word) 按照想要的字符串来连接字符串
f.IndexOf(string sigle) 搜索字符串是否存在single 如果存在就输出第一次出现single所在的位置 如果没有返回-1
g.LastIndexOf(string sigle) 搜索字符串是否存在single 如果存在就输出最后一次出现single所在的位置 如果没有返回-1
h.ToLower() 字符串小写
i.ToUpper() 字符串大写
j.Trim() 去掉字符串前后的空格 去不掉字符串中空格
Format 格式化
语法:string mystring =String.Format(格式字符串,参数列表)
格式字符串 格式:({索引 ,对齐 :格式说明符})
索引 :对应参数列表的值
对齐:一个带正负号的整数 设置显示宽度和对齐方式 正代表左对齐 负代表右对齐
类型转换:
a:隐式转换(自动转换)
b:显式转换(强制转换)
i:(数据类型) eg:(int)强制转换成int类型 但转换过程会丢失精度
II:int.Parse(string value) 括号中只能放置string类型参数
III:Convert.ToInt32(object value)括号中可以放置任何类型的参数 转换后的值 四舍五入