您的问题似乎不完整,您是想询问关于C语言编程的某个具体问题吗?比如C语言的语法、编程技巧、项目开发等。请提供更具体的信息,这样我才能给出更准确的回答。

2026-03-31 09:451阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计735个文字,预计阅读时间需要3分钟。

您的问题似乎不完整,您是想询问关于C语言编程的某个具体问题吗?比如C语言的语法、编程技巧、项目开发等。请提供更具体的信息,这样我才能给出更准确的回答。

目录 + 场景 + 需求 + 开发环境 + 开发工具 + 实现代码 + 实现效果 + 场景 + 在多种情况下,使用函数时需要返回多个值,例如获取处理状态及信息、结果集等。最古老的做法是老二。

目录
  • 场景
  • 需求
  • 开发环境
  • 开发工具
  • 实现代码
  • 实现效果

场景

很多情况下,我们在使用函数的时候,需要return多个返回值,比如说需要获取处理的状态以及信息、结果集等。最古老的时候,有用ref或者out来处理这个情况,但是需要定义处理等操作之类的,而且书写也不是很舒服,感觉就是不太完美;后来有了dynamic后,觉得也是个不错的选择,可惜也有很多局限性,比如:匿名类无法序列化、返回结果不够直观等。再然后就写一个结构化的对象来接收,但是如果每个方法都定义一个对象去接收的话,想必也会很麻烦;

需求

所以,综上场景所述,我们可以写一个比较通用的返回值对象,然后使用泛型来传递需要return的数据。

您的问题似乎不完整,您是想询问关于C语言编程的某个具体问题吗?比如C语言的语法、编程技巧、项目开发等。请提供更具体的信息,这样我才能给出更准确的回答。

开发环境

.NET Framework版本:4.5

开发工具

Visual Studio 2013

实现代码

[Serializable] public class ReturnResult { public ReturnResult(Result _result, string _msg) { this.result = _result; this.msg = _result == Result.success ? "操作成功!" + _msg : "操作失败!" + _msg; } public ReturnResult(Result _result) : this(_result, "") { } public Result result { get; set; } public string msg { get; set; } } [Serializable] public class ReturnResult<T> : ReturnResult { public ReturnResult(T _data) : base(Result.success) { this.data = _data; } public ReturnResult(Result _result, string _msg) : base(_result, _msg) { } public ReturnResult(Result _result, string _msg, T _data) : base(_result, _msg) { this.data = _data; } public T data { get; set; } } public enum Result { error = 0, success = 1 }

public ReturnResult<string> GetMsg() { return new ReturnResult<string>("msg"); } public ReturnResult<int> GetCode() { return new ReturnResult<int>(10); } public ReturnResult<Student> GetInfo() { Student student = new Student { id = 1, name = "张三" }; return new ReturnResult<Student>(student); } public class Student { public int id { get; set; } public string name { get; set; } } private void button1_Click(object sender, EventArgs e) { var result = GetCode(); if (result.result == Result.success) { MessageBox.Show(result.msg + result.data); } } private void button2_Click(object sender, EventArgs e) { var result = GetMsg(); if (result.result == Result.success) { MessageBox.Show(result.msg + result.data); } } private void button3_Click(object sender, EventArgs e) { var result = GetInfo(); if (result.result == Result.success) { MessageBox.Show(result.msg + Newtonsoft.Json.JsonConvert.SerializeObject(result.data)); } }

实现效果

代码解析:挺简单的,也没啥可解释的。

到此这篇关于C#实现定义一个通用返回值的文章就介绍到这了,更多相关C#通用返回值内容请搜索自由互联以前的文章或继续浏览下面的相关文章希望大家以后多多支持自由互联!

本文共计735个文字,预计阅读时间需要3分钟。

您的问题似乎不完整,您是想询问关于C语言编程的某个具体问题吗?比如C语言的语法、编程技巧、项目开发等。请提供更具体的信息,这样我才能给出更准确的回答。

目录 + 场景 + 需求 + 开发环境 + 开发工具 + 实现代码 + 实现效果 + 场景 + 在多种情况下,使用函数时需要返回多个值,例如获取处理状态及信息、结果集等。最古老的做法是老二。

目录
  • 场景
  • 需求
  • 开发环境
  • 开发工具
  • 实现代码
  • 实现效果

场景

很多情况下,我们在使用函数的时候,需要return多个返回值,比如说需要获取处理的状态以及信息、结果集等。最古老的时候,有用ref或者out来处理这个情况,但是需要定义处理等操作之类的,而且书写也不是很舒服,感觉就是不太完美;后来有了dynamic后,觉得也是个不错的选择,可惜也有很多局限性,比如:匿名类无法序列化、返回结果不够直观等。再然后就写一个结构化的对象来接收,但是如果每个方法都定义一个对象去接收的话,想必也会很麻烦;

需求

所以,综上场景所述,我们可以写一个比较通用的返回值对象,然后使用泛型来传递需要return的数据。

您的问题似乎不完整,您是想询问关于C语言编程的某个具体问题吗?比如C语言的语法、编程技巧、项目开发等。请提供更具体的信息,这样我才能给出更准确的回答。

开发环境

.NET Framework版本:4.5

开发工具

Visual Studio 2013

实现代码

[Serializable] public class ReturnResult { public ReturnResult(Result _result, string _msg) { this.result = _result; this.msg = _result == Result.success ? "操作成功!" + _msg : "操作失败!" + _msg; } public ReturnResult(Result _result) : this(_result, "") { } public Result result { get; set; } public string msg { get; set; } } [Serializable] public class ReturnResult<T> : ReturnResult { public ReturnResult(T _data) : base(Result.success) { this.data = _data; } public ReturnResult(Result _result, string _msg) : base(_result, _msg) { } public ReturnResult(Result _result, string _msg, T _data) : base(_result, _msg) { this.data = _data; } public T data { get; set; } } public enum Result { error = 0, success = 1 }

public ReturnResult<string> GetMsg() { return new ReturnResult<string>("msg"); } public ReturnResult<int> GetCode() { return new ReturnResult<int>(10); } public ReturnResult<Student> GetInfo() { Student student = new Student { id = 1, name = "张三" }; return new ReturnResult<Student>(student); } public class Student { public int id { get; set; } public string name { get; set; } } private void button1_Click(object sender, EventArgs e) { var result = GetCode(); if (result.result == Result.success) { MessageBox.Show(result.msg + result.data); } } private void button2_Click(object sender, EventArgs e) { var result = GetMsg(); if (result.result == Result.success) { MessageBox.Show(result.msg + result.data); } } private void button3_Click(object sender, EventArgs e) { var result = GetInfo(); if (result.result == Result.success) { MessageBox.Show(result.msg + Newtonsoft.Json.JsonConvert.SerializeObject(result.data)); } }

实现效果

代码解析:挺简单的,也没啥可解释的。

到此这篇关于C#实现定义一个通用返回值的文章就介绍到这了,更多相关C#通用返回值内容请搜索自由互联以前的文章或继续浏览下面的相关文章希望大家以后多多支持自由互联!