C# 类名 当参数传递
答案:3 悬赏:0 手机版
解决时间 2021-04-04 08:06
- 提问者网友:火车头
- 2021-04-03 18:34
C# 类名 当参数传递
最佳答案
- 五星知识达人网友:何以畏孤独
- 2021-04-03 19:35
我想说几点,第一你定义的是结构,而不是类。类的话是public class class1是这样定义的。
结构是值类型,无需实例化,所以根本没必要作为参数去传递。
你想在其他方法中访问的话直接通过结构名.属性即可。
class1.j就可以访问到该属性了。
如果说要把类当参数传递,我帮你更正下。
首先定义一个类,而不是结构。
public class class1
{
//这里我把属性初始化并赋值,方便后面测试
public int i=8;
public int j=10;
}
private bool Callback()
{
//这里实例化类
class1 c=new class1();
return Web_ArrayCallback(c);//这里把类对象传过去
}
private bool Web_ArrayCallback(class1 c)//这里接受传来的类对象参数
{
//这里就可以直接访问类的属性了。
int a=c.i;
int b=c.j;
if(a>b);//这里将2个属性进行比较,然后返回bool值。
return true;
else
return false;
}测试的时候直接调用Callback()这个方法就行了。
结构是值类型,无需实例化,所以根本没必要作为参数去传递。
你想在其他方法中访问的话直接通过结构名.属性即可。
class1.j就可以访问到该属性了。
如果说要把类当参数传递,我帮你更正下。
首先定义一个类,而不是结构。
public class class1
{
//这里我把属性初始化并赋值,方便后面测试
public int i=8;
public int j=10;
}
private bool Callback()
{
//这里实例化类
class1 c=new class1();
return Web_ArrayCallback(c);//这里把类对象传过去
}
private bool Web_ArrayCallback(class1 c)//这里接受传来的类对象参数
{
//这里就可以直接访问类的属性了。
int a=c.i;
int b=c.j;
if(a>b);//这里将2个属性进行比较,然后返回bool值。
return true;
else
return false;
}测试的时候直接调用Callback()这个方法就行了。
全部回答
- 1楼网友:举杯邀酒敬孤独
- 2021-04-03 20:30
这肯定不行啊,如果你要这样用,可以用反射机制试试。追问就用我上面的代码 举个列子看看~~我刚弄这个不会追答还是你自己学一下的好,反射可以从dll中通过一个类名来获得类并实例化的
- 2楼网友:笑迎怀羞
- 2021-04-03 20:06
private bool Web_ArrayCallback(string strClassName, IntPtr pObject, IntPtr pContext)
这里 strClassName是string
{
strClassName class = ......... //这是用 strClassName声明 class对象???
}
strClassName是参数不是类型追问strClassName 就是上面申明的结构体追答Web_ArrayCallback("class1", pGameKind, pContext);这不是传了个字符串吗 ”class1”
private bool Web_ArrayCallback(string strClassName, IntPtr pObject, IntPtr pContext)
这接收 string strClassName=“class1”;strClassName 他就是个string的对象,在这个函数他就是个参数,你把一个普通的字符串当类型来用了追问我知道写错了
private bool Web_ArrayCallback(string strClassName, IntPtr pObject, IntPtr pContext)
{
strClassName class = .........
}
这个是公用的。 其他地方想调用 。 我想就是吧结构体传进来进行了 不需要写重复的代码。追答private bool Web_ArrayCallback(string strClassName)
这个地方 strClassName class = .........错了,strClassName是参数,strClassName不是类型,你怎么能用他类声明class呢追问我知道写错了我只是举个列子 该这么写 才可以呢追答楼上的写的挺好,看懂了就行了,改你这个不好改啊,都不知道你代码功能想干什么。。。
这里 strClassName是string
{
strClassName class = ......... //这是用 strClassName声明 class对象???
}
strClassName是参数不是类型追问strClassName 就是上面申明的结构体追答Web_ArrayCallback("class1", pGameKind, pContext);这不是传了个字符串吗 ”class1”
private bool Web_ArrayCallback(string strClassName, IntPtr pObject, IntPtr pContext)
这接收 string strClassName=“class1”;strClassName 他就是个string的对象,在这个函数他就是个参数,你把一个普通的字符串当类型来用了追问我知道写错了
private bool Web_ArrayCallback(string strClassName, IntPtr pObject, IntPtr pContext)
{
strClassName class = .........
}
这个是公用的。 其他地方想调用 。 我想就是吧结构体传进来进行了 不需要写重复的代码。追答private bool Web_ArrayCallback(string strClassName)
这个地方 strClassName class = .........错了,strClassName是参数,strClassName不是类型,你怎么能用他类声明class呢追问我知道写错了我只是举个列子 该这么写 才可以呢追答楼上的写的挺好,看懂了就行了,改你这个不好改啊,都不知道你代码功能想干什么。。。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯