C#中返回值封装
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C#中返回值封装,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4868字,纯文字阅读大概需要7分钟。
内容图文
在平时开发过程中常常需要取一个方法的返回值,BOSS写了一个返回值类,做个练习以备不时之需:
返回值支持泛型和非泛型 先贴上代码:
非泛型返回值类:
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Runtime.Serialization; 6 7 8 namespace WindowsFormsApplication31 9 { 10 [Serializable] 11 12 public class ReturnValue 13 { 14 /// <summary> 15 /// 状态:成功、失败 16 /// </summary> 17 18 public bool State 19 { 20 get ; 21 protected set ; 22 } 23 24 /// <summary> 25 /// 成功消息 26 /// </summary> 27 28 public string SuccessMessage 29 { 30 get ; 31 protected set ; 32 } 33 34 /// <summary> 35 /// 失败消息 36 /// </summary> 37 38 public string FailMessage 39 { 40 get ; 41 protected set ; 42 } 43 44 45 /// <summary> 46 /// 构造器 47 /// </summary> 48 public ReturnValue() 49 { 50 this.State = false; 51this.SuccessMessage = string.Empty; 52this.FailMessage = string.Empty; 53 } 5455///<summary>56/// 设置状态 57///</summary>58///<param name="state">状态</param>59///<param name="message">消息</param>60privatevoid Load(bool state, string message = "") 61 { 62this.State = state; 63if (state) 64 { 65this.SuccessMessage = message; 66 } 67else68 { 69this.FailMessage = message; 70 } 71 } 7273///<summary>74/// 设置成功 75///</summary>76///<param name="message">成功消息</param>77publicvoid Success(string message = "") 78 { 79this.Load(true, message); 80 } 8182///<summary>83/// 设置失败 84///</summary>85///<param name="message">失败消息</param>86publicvoid Fail(string message = "") 87 { 88this.Load(false, message); 89 } 90 } 91 }
泛型返回值类:
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Runtime.InteropServices; 6 using System.Runtime.Serialization; 7 8 9 10 11 namespace WindowsFormsApplication31 12 { 13 [Serializable] 14 15 public class ReturnValues<T> : ReturnValue 16 { 17///<summary>18/// 返回值 19///</summary>2021public T Value 22 { 23get; 24set; 25 } 2627///<summary>28/// 设置成功 29///</summary>30///<param name="value">值</param>31///<param name="message">成功消息</param>32publicvoid Success(T value = default(T), string message = "") 33 { 34this.State = true; 35this.Value = value; 36this.SuccessMessage = message; 37 } 38 } 39 }
实例:
1.演示窗体:
通过2个文本框输入信息
第一个开始返回文本验证信息
第二个开始按钮测试
#region 返回值(非泛型) ///<summary>/// 按钮1 ///</summary>///<param name="sender"></param>///<param name="e"></param>privatevoid btnVerifyEmpty_Click(object sender, EventArgs e) { ReturnValue rv = VerifyEmpty(); this.ReturnValueHelper(rv); } ///<summary>/// 按钮1 测试 ///</summary>///<returns></returns>private ReturnValue VerifyEmpty() { ReturnValue rv = new ReturnValue(); if (string.IsNullOrEmpty(this.textBox1.Text.Trim())) { rv.Fail("值为空"); } else { rv.Success("值非空"); } return rv; } ///<summary>/// 返回值输出 ///</summary>///<param name="rv"></param>privatevoid ReturnValueHelper(ReturnValue rv) { bool state = rv.State; StringBuilder sb = new StringBuilder(); if (state) { sb.AppendLine("返回值状态是:True"); sb.AppendLine("成功消息:" + rv.SuccessMessage); } else { sb.AppendLine("返回值状态是:False"); sb.AppendLine("失败消息:" + rv.FailMessage); } MessageBox.Show(sb.ToString()); } #endregion
泛型:
#region 返回值(泛型) privatevoid btnQueryStudent_Click(object sender, EventArgs e) { //获取姓名string studentName = this.textBox2.Text.Trim(); //获取返回值 ReturnValues<int> rv = this.GetReturnValues(studentName); //输出this.ReturnValuesHelper(rv); } ///<summary>/// 获取返回值 ///</summary>///<param name="rv"></param>private ReturnValues<int> GetReturnValues(string name) { //实例化返回类 ReturnValues<int> rv = new ReturnValues<int>(); //构造测试数据,模拟实际开发的取数据操作 Dictionary<string, int> dic = new Dictionary<string, int>(); dic.Add("A", 1); dic.Add("B", 2); dic.Add("C", 3); dic.Add("D", 4); dic.Add("E", 5); //开始判断if (dic.Keys.Contains(name)) { rv.Success("数据查找成功"); rv.Value = dic[name]; } else { rv.Fail("数据查找失败"); } return rv; } ///<summary>/// 返回值输出 ///</summary>///<param name="rv"></param>privatevoid ReturnValuesHelper(ReturnValues<int> rv) { bool state = rv.State; StringBuilder sb = new StringBuilder(); if (state) { sb.AppendLine("返回值状态是:True"); sb.AppendLine("成功消息:" + rv.SuccessMessage); sb.AppendLine("泛型值:" + rv.Value.ToString()); } else { sb.AppendLine("返回值状态是:False"); sb.AppendLine("失败消息:" + rv.FailMessage); } MessageBox.Show(sb.ToString()); } #endregion }
3.开始演示:
// 第二个文本只能输入A B C D E才提示成功并且可以得到对应的返回值 Dictionary<string, int> dic = new Dictionary<string, int>(); dic.Add("A", 1); dic.Add("B", 2); dic.Add("C", 3); dic.Add("D", 4); dic.Add("E", 5);
原文:http://www.cnblogs.com/CallmeYhz/p/4894334.html
内容总结
以上是互联网集市为您收集整理的C#中返回值封装全部内容,希望文章能够帮你解决C#中返回值封装所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。