c#中想调用dll文件后return多个值怎么办?

nwpughy 2017-09-14 05:24:53
我的dll文件代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ceshi
{
public class Class1
{
double x;
double y;
double[,] A = new double[2, 2];

public double CHENGJI(double a, double b, double c, double d)
{
A[0, 0] = a;
A[0, 1] = b;
A[1, 0] = c;
A[1, 1] = d;
return x = 2 * A[1, 1] + A[0, 1] + A[0, 0] + A[1, 0];
y = 2 * A[1, 1];

}
}
}
我的控制台代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using ceshi;

namespace ceshi1
{
class Program
{
static void Main(string[] args)
{
double x;
double y;
double a = 1, b = 2, c = 3, d = 4;
Class1 c1 = new Class1();//实例化对象
x = c1.CHENGJI(a, b, c, d);
y = c1.CHENGJI(a, b, c, d);
Console.WriteLine(x);
Console.WriteLine(y);
Console.ReadLine();
}
}
}

我理想中的运算值应该是x=14,y=8
但是总是显示x=14,y=14
就是说y的值没有返回过来
请问怎么在dll文件的函数里面返回多个值呢?
本人菜鸟,谢谢各位大神的指导
...全文
472 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
nwpughy 2017-09-17
  • 打赏
  • 举报
回复
6楼的方法2 我写完之后 控制台会在x = c1.CHENGJI(a, b, c, d, ref x, ref y);处报错 错误 1 无法将类型“void”隐式转换为“double” 请问应该怎么解决啊 谢谢
白衣如花 2017-09-15
  • 打赏
  • 举报
回复
总结一下问题:多个返回值函数怎么定义 解决方案: 1.返回一个数组/元组/自定义类型
public double[] CHENGJI(double a, double b, double c, double d)
public Tuple<double, double> CHENGJI(double a, double b, double c, double d)
public MyClass CHENGJI(double a, double b, double c, double d)
class MyClass{ public double x; public double y;}
2.使用ref或者out
public voidCHENGJI(double a, double b, double c, double d, ref double x, ref double y)
homesos 2017-09-15
  • 打赏
  • 举报
回复
用输出参数 out double 或引用传参 ref double http://blog.csdn.net/u014532992/article/details/38184321 http://www.cnblogs.com/dyf96966/p/5483411.html
楚笑sama 2017-09-15
  • 打赏
  • 举报
回复
可以这样用 System.Tuple<int,int,int,int,int,int> 返回一个这个类型就可以
sy_05 2017-09-15
  • 打赏
  • 举报
回复
可以用结构体,也是值类型的,多个值组合在一起
nwpughy 2017-09-14
  • 打赏
  • 举报
回复
没找见c#的模块 就来c++了... 嘿嘿 大神可以写一个out的 简单小例子吗 我刚刚看了out关键字 也没有看的太明白 实在是麻烦你了 谢谢
www_adintr_com 2017-09-14
  • 打赏
  • 举报
回复
看看语法吧, 在参数中使用 out 关键字 另外, C# 的怎么发到 C++ 里来了.
nwpughy 2017-09-14
  • 打赏
  • 举报
回复
希望有大神过来帮忙 谢谢啦

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧