c#怎么将一个struct的返回值传递
现在我有2个类第一个类中有个函数的返回类型是struct型struct在前面已经定义了在另一个类中我调用了这个函数,得到了这个struct的返回值。我想将这个struct...
现在我有2个类
第一个类中有个函数的返回类型是struct型 struct在前面已经定义了
在另一个类中我调用了这个函数,得到了这个struct的返回值。
我想将这个struct值赋给这个类中的一个对象,这样我就不用每次要调用这个struct里面值的时候就要执行一次这个函数了 请问怎么实现 是要在本类中重新建一个一样的struct类型再重新一个个赋值吗? 展开
第一个类中有个函数的返回类型是struct型 struct在前面已经定义了
在另一个类中我调用了这个函数,得到了这个struct的返回值。
我想将这个struct值赋给这个类中的一个对象,这样我就不用每次要调用这个struct里面值的时候就要执行一次这个函数了 请问怎么实现 是要在本类中重新建一个一样的struct类型再重新一个个赋值吗? 展开
7个回答
展开全部
不需要再本类中重新建一个一样的struct类型
public struct StructA
{
....
}
public class ClassB
{
public StructA aStrcutA{get;}
private StructA ProduceStructA
{
....
return ....
}
public ClassB()
{
// 在构造方法里完成对aStrcutA赋值
ProduceStructA();
}
}
这样,你在外部只需要
Class b=new ClassB();
b.aStrcutA就可以获得这个struct了。
但我不是很明白你的意思,你是想要在任何地方(任何类或者方法里)都可以获取到这个aStrcutA,而且,获取到的都是同一个aStrcutA吗?那就用public static StructA aStrcutA{get;}
在外面直接通过ClassB.aStrcutA就能获取它。
有问题随时追问。
打字不容易,有用请采纳。
对了,忘记说明了,C#里,struct是值类型,是复制的实例赋值的。
比如:StructA a=new StructA ();
StructA b=a;此时,比是相当于是把a的内存复制了一份赋值给了a;
但对于class,是引用类型,是复制的引用,而非实例。
比如:
ClassB b=new ClassB();
ClassB a=b;此时,a和b指向的是同一个实例,即b所做的修改同样会影响到a。
public struct StructA
{
....
}
public class ClassB
{
public StructA aStrcutA{get;}
private StructA ProduceStructA
{
....
return ....
}
public ClassB()
{
// 在构造方法里完成对aStrcutA赋值
ProduceStructA();
}
}
这样,你在外部只需要
Class b=new ClassB();
b.aStrcutA就可以获得这个struct了。
但我不是很明白你的意思,你是想要在任何地方(任何类或者方法里)都可以获取到这个aStrcutA,而且,获取到的都是同一个aStrcutA吗?那就用public static StructA aStrcutA{get;}
在外面直接通过ClassB.aStrcutA就能获取它。
有问题随时追问。
打字不容易,有用请采纳。
对了,忘记说明了,C#里,struct是值类型,是复制的实例赋值的。
比如:StructA a=new StructA ();
StructA b=a;此时,比是相当于是把a的内存复制了一份赋值给了a;
但对于class,是引用类型,是复制的引用,而非实例。
比如:
ClassB b=new ClassB();
ClassB a=b;此时,a和b指向的是同一个实例,即b所做的修改同样会影响到a。
展开全部
答案肯定是不用重新新建的
第一个类是A A里有个struct是student //这个struct必须是public 而起student的属性也必须是public
A有个方法 returnStudert()
第二个类 B B里有一个成员a A a=new A() 还一个 A.student s=new A.student()
然后。通过B类调用A类的returnStudent就可以赋值给 B种的s成员了
第一个类是A A里有个struct是student //这个struct必须是public 而起student的属性也必须是public
A有个方法 returnStudert()
第二个类 B B里有一个成员a A a=new A() 还一个 A.student s=new A.student()
然后。通过B类调用A类的returnStudent就可以赋值给 B种的s成员了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我不太明白你的意思,你是指如何把一个方法的struct类型的返回值赋给一个struct类型类成员?
我简单写了一下,不知道符不符合你的意思哈
//定义结构体
struct MyStruct
{
public int num;
public string str;
public MyStruct(int num, string str)
{
this.num = num;
this.str = str;
}
}
//定义方法
private MyStruct method()
{
MyStruct struct1;
struct1.num = 1;
struct1.str = "abc";
return struct1;
}
//类的MyStruct成员变量
MyStruct struct2;
//返回值赋给成员变量
struct2 = method();
就这么简单
我简单写了一下,不知道符不符合你的意思哈
//定义结构体
struct MyStruct
{
public int num;
public string str;
public MyStruct(int num, string str)
{
this.num = num;
this.str = str;
}
}
//定义方法
private MyStruct method()
{
MyStruct struct1;
struct1.num = 1;
struct1.str = "abc";
return struct1;
}
//类的MyStruct成员变量
MyStruct struct2;
//返回值赋给成员变量
struct2 = method();
就这么简单
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
直接用一个这个struct类型的变量保存就行了.
c# 里struct 和类很像的.
不过不建议用struct,如果类可以自己控制,把struct改成class吧.
c# 里struct 和类很像的.
不过不建议用struct,如果类可以自己控制,把struct改成class吧.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
应该就是你说的,在本类B中建立一个struct类型的成员,然后在类B的构造函数中,调用类A返回struct的那个函数,给这个成员赋值。之后,B类使用这个成员即可。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询