欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

.NET的out 参数 有大用 有大大用

  1. int num = 5;
  2. int result;
  3. Calcute(5,out result);
  4. Console.WriteLine("第一次输出结果:");
  5. Console.WriteLine(result);
  6. result = 3;
  7. Calcute(5, out result);
  8. Console.WriteLine("第二次输出结果:");
  9. Console.WriteLine(result);
                       
  1. public static void Calcute(int num,out int result)
  2. {
  3. result = num + 5;
  4. }

           

输出结果如下:


           

结论,无论是否给result赋值,都不会影响内部计算逻辑


           


           

来自  https://blog.csdn.net/hhw199112/article/details/80696757?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-1.pc_relevant_default&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-1.pc_relevant_default&utm_relevant_index=1            


           


           


 

关于.net的out 关键字的使用的一个小练习

         
           

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;


namespace WindowsFormsApplication14
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }


        private void button1_Click(object sender, EventArgs e)
        {
            Capture_screen(out s_wid, out  s_height);
            label1.Text = s_wid.ToString();
            label2.Text = s_height.ToString();
        }
        int s_wid = 0;
        int s_height = 0;
        static void Capture_screen(out int s_wid, out int s_height)
        {
            s_wid = Screen.PrimaryScreen.Bounds.Width;//获得屏幕的宽度
            s_height = Screen.PrimaryScreen.Bounds.Height;//获得屏幕的高度

        }
    }
           

}

解释:out的引用方法可以返回多个参数,这里用来返回被赋值后的s_wid 和_height的值


           

来自   https://blog.csdn.net/qq_34787830/article/details/51376346?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-1.pc_relevant_default&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-1.pc_relevant_default&utm_relevant_index=2            


           


           


           


           

【ASP.NET】19.C#高级参数out的使用

           


           

C#中有三个高级参数,分别是out,ref,params,本文中先来介绍out参数的使用。

out:用于方法中返回多于值(可以理解为让一个方法返回不同的类型值),我们通过例子来理解out的使用:用一个方法,判断用户是否登录成功(布尔类型),同时提示用户是否登录成功(字符串类型)。

  1. #region 3.1 用户信息验证
  2. /// <summary>
  3. /// 用户验证
  4. /// </summary>
  5. /// <param name="URSN">用户编号</param>
  6. /// <param name="PSWD">用户密码</param>
  7. /// <returns>用户验证结果:True:用户名密码正确;False:用户名或密码错误</returns>
  8. public bool UrChkPsw(string URSN, string PSWD, out string Msge)
  9. {
  10. try
  11. {
  12. bool bolResult = false;
  13. DataTable dt = objSql.GetUserInfo(URSN);
  14. string strResult = "";
  15. if (dt.Rows.Count != 0)
  16. {
  17. string strPSWD = dt.Rows[0]["PSWD"].ToString().Trim();
  18. //PSWD = FunEryMd5(PSWD, 16);
  19. if (strPSWD == PSWD) { strResult = "用户名密码正确"; bolResult = true; UrCkWriteSn(URSN); } else { strResult = "密码错误"; }
  20. }
  21. else
  22. {
  23. strResult = "该用户名不存在";
  24. }
  25. Msge = strResult;
  26. return bolResult;
  27. }
  28. catch (Exception ex)
  29. {
  30. throw ex;
  31. }
  32. }
  1.  如果需要返回多个参数,则添加多个参数即可,例如UrChkPsw(string URSN, string PSWD, out string Msge,out int num)

  2. out多于返回值,用于一个方法中多于返回的值,例如这个方法中

  3. 返回值是布尔类型,同时,还可以返回一个多于的值,Msge

  4. out的参数必须在方法中进行初始化

  1. #region 3.1按钮事件
  2. /// <summary>
  3. /// 登录功能
  4. /// </summary>
  5. /// <param name="sender"></param>
  6. /// <param name="e"></param>
  7. protected void Btn_Click(object sender, EventArgs e)
  8. {
  9. lblWarning.Text = "";
  10. //执行登录逻辑
  11. string strURID = USNA.Text.ToString().Trim();
  12. string strPSWD = PWSD.Text.ToString().Trim();
  13. #region 用户名密码非空验证
  14. if (strURID == "")
  15. {
  16. lblWarning.Text = "请输入用户名!";
  17. return;
  18. }
  19. if (strPSWD == "")
  20. {
  21. lblWarning.Text = "请输入密码!";
  22. return;
  23. }
  24. #endregion //用户名密码非空验证
  25. #region -->跟踪测试用户验证
  26. string Msge;
  27. bool strResult = objDrCm.UrChkPsw(strURID, strPSWD,out Msge);
  28. if (strResult)
  29. {
  30. //**************************************************
  31. string strARID = "Test";
  32. //**************************************************
  33. string strUSNR = objDrCm.QueryFiled("MA12UH", "URID", strURID, "URSN");
  34. bool bol = objDrCm.UrLogin(strUSNR, strPSWD);
  35. if (bol)
  36. {
  37. ClientScript.RegisterStartupScript(this.GetType(), "Key", "<script>alert('" + "恭喜你登录成功" + "')</script>");
  38. Response.Redirect("Index.aspx");
  39. }
  40. else
  41. {
  42. ClientScript.RegisterStartupScript(this.GetType(), "Key", "<script>alert('" + "登录失败,请您重新登录!" + "')</script>");
  43. }
  44. }
  45. else
  46. {
  47. lblWarning.Text = Msge; // 该用户名不存在
  48. }
  49. #endregion //<--跟踪测试用户验证
  50. }
  51. #endregion //3.1按钮事件

 

来自  https://blog.csdn.net/benben513624/article/details/81363050


普通分类: