out
每个方法只能有一个返回值,但是你想返回多个值,那就用out。
练习1
class Program
{
static void Main(string[] args)
{
//分别的提示用户输入用户名和密码
//你写一个方法来判断用户输入的是否正确
//返回给用户一个登陆结果,并且还要单独的返回给用户一个登陆信息
//如果用户名错误,除了返回登陆结果之外,还要返回一个 "用户名错误"
//“密码错误”
Console.WriteLine("请输入用户名");
string userName = Console.ReadLine();
Console.WriteLine("请输入密码");
string userPwd = Console.ReadLine();
string msg;//此处定义一个变量,仅用于接受方法传出来的值,无需初始化。
bool b = IsLogin(userName, userPwd, out msg);
Console.WriteLine("登陆结果:{0}", b); //登陆结果:false
Console.WriteLine("登陆信息:{0}", msg);//登陆信息:未知错误
Console.ReadKey();
} /// <summary>
/// 判断登陆是否成功
/// </summary>
/// <param name="name">用户名</param>
/// <param name="pwd">密码</param>
/// <param name="msg">多余返回的登陆信息</param>
/// <returns>返回登陆结果</returns>
public static bool IsLogin(string name, string pwd, out string msg)
{
if (name == "admin" && pwd == "888888")
{
msg = "登陆成功";
return true;
}
else if (name == "admin")
{
msg = "密码错误";
return false;
}
else if (pwd == "888888")
{
msg = "用户名错误";
return false;
}
else
{
msg = "未知错误";
return false;
}
}
}
//更复杂的练习 class Program
{
static void Main(string[] args)
{
//写一个方法 求一个数组中的最大值、最小值、总和、平均值
int[] numbers = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
//将要返回的4个值,放到一个数组中返回 int[] res = GetMaxMinSumAvg(numbers);
Console.WriteLine("最大值是{0},最小值是{1},总和是{2},平均值是{3}", res[0], res[1], res[2], res[3]); int max1;
int min1;
int sum1;
int avg1;
bool b;
string s;
double d;
Test(numbers, out max1, out min1, out sum1, out avg1, out b, out s, out d); Console.WriteLine(max1);
Console.WriteLine(min1);
Console.WriteLine(sum1);
Console.WriteLine(avg1);
Console.WriteLine(b);
Console.WriteLine(s);
Console.WriteLine(d);
Console.ReadKey(); }
/// <summary>
/// 计算一个数组的最大值、最小值、总和、平均值
/// </summary>
/// <param name="nums"></param>
/// <returns></returns>
public static int[] GetMaxMinSumAvg(int[] nums)
{
int[] res = new int[4];
//定义 res[0] 最大值 res[1]最小值 res[2]总和 res[3]平均值
res[0] = nums[0];//max
res[1] = nums[0];//min
res[2] = 0;//sum
string name = "孙全";
bool b = true; for (int i = 0; i < nums.Length; i++)
{
//如果当前循环到的元素比我假定的最大值还大
if (nums[i] > res[0])
{
//将当前循环到的元素赋值给我的最大值
res[0] = nums[i];
}
if (nums[i] < res[1])
{
res[1] = nums[i];
}
res[2] += nums[i];
}
//平均值
res[3] = res[2] / nums.Length;
return res; } /// <summary>
/// 计算一个整数数组的最大值、最小值、平均值、总和
/// </summary>
/// <param name="nums">要求值得数组</param>
/// <param name="max">多余返回的最大值</param>
/// <param name="min">多余返回的最小值</param>
/// <param name="sum">多余返回的总和</param>
/// <param name="avg">多余返回的平均值</param>
public static void Test(int[] nums, out int max, out int min, out int sum, out int avg, out bool b, out string s, out double d)
{
//out参数要求在方法的内部必须为其赋值
max = nums[0];
min = nums[0];
sum = 0;
for (int i = 0; i < nums.Length; i++)
{
if (nums[i] > max)
{
max = nums[i];
}
if (nums[i] < min)
{
min = nums[i];
}
sum += nums[i];
}
avg = sum / nums.Length; b = true;
s = "123";
d = 3.13;
} }
Console.WriteLine("登陆结果:{0}", b); //登陆结果:false Console.WriteLine("登陆信息:{0}", msg);//登陆信息:未知错误
随机推荐
- [c++] Smart Pointers
内存管理方面的知识 基础实例: #include <iostream> #include <stack> #include <memory> using names ...
- java之文件基本操作
java之文件基本操作 1 使用 BufferedReader 在控制台读取字符 public static void readChar() throws IOException{ char c; I ...
- python mock基本使用
什么是mock? mock在翻译过来有模拟的意思.这里要介绍的mock是辅助单元测试的一个模块.它允许您用模拟对象替换您的系统的部分,并对它们已使用的方式进行断言. 在Python2.x 中 mock ...
- 4.羽翼sqlmap学习笔记之Post登录框注入
4.Sqlmap系列教程——post登录框注入注入点: http://xxx.xxx.com/Login.asp 注入方式一: 1.对着注入点使用burp抓包,保存txt格式文件. 2.输入命令: . ...
- 12.Struts2自定义拦截器
12.自定义拦截器 拦截器是Struts2的一个重要特性.因为Struts2的大多数核心功能都是通过拦截器实现的. 拦截器之所以称之为“拦截器”,是因为它可以拦截Action方法的执行, ...
- 深入剖析tomcat之一个简单的web服务器
这个简单的web服务器包含三个类 HttpServer Request Response 在应用程序的入口点,也就是静态main函数中,创建一个HttpServer实例,然后调用其await()方法. ...
- LINQ(集成化查询)
LINQ可以对数组.集合等数据结构进行查询.筛选.排序等操作:也可以用于与数据库交互:也支持对XML的操作,使用LINQ技术可以动态创建.筛选和修改XML数据和直接操作XML文件. 一). LINQ基 ...
- EF中的实体类型【Types of Entity in Entity】(EF基础系列篇8)
We created EDM for existing database in the previous section. As you have learned in the previous se ...
- 转:sublime text注册码
—– BEGIN LICENSE —–Michael BarnesSingle User LicenseEA7E-8213858A353C41 872A0D5C DF9B2950 AFF6F667C4 ...
- node.js操作mysql数据库之增删改查
安装mysql模块 npm install mysql 数据库准备 mysql server所在的机器IP地址是192.168.0.108,登录账户就用root@123456 在mysql中创建tes ...