社区
C#
帖子详情
C#里面怎么把 类名 和 函数名 作为变量参数传递啊?100分求一个解决方案
fanmingwu
2004-09-14 03:55:53
C#里面怎么把 类名 和 函数名 作为变量参数传递啊?100分求一个解决方案
例如需要将一个方法作为变量传递给 ThreadStart 只能直接写成这样
new ThreadStart(Hotel.run())
new ThreadStart(Customer.run())
能不能有一个更加灵活得方法写成诸如
method=...
new ThreadStart(method)
...全文
2090
18
打赏
收藏
C#里面怎么把 类名 和 函数名 作为变量参数传递啊?100分求一个解决方案
C#里面怎么把 类名 和 函数名 作为变量参数传递啊?100分求一个解决方案 例如需要将一个方法作为变量传递给 ThreadStart 只能直接写成这样 new ThreadStart(Hotel.run()) new ThreadStart(Customer.run()) 能不能有一个更加灵活得方法写成诸如 method=... new ThreadStart(method)
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
18 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wxy0401
2004-09-15
打赏
举报
回复
使用代理delegate
using System;
delegate void DoubleOp(double value);
class MainEntryPoint
{
static void Main()
{
DoubleOp operations = new DoubleOp(MathsOperations.MultiplyByTwo);
ProcessAndDisplayNumber(operations, 2.0);
ProcessAndDisplayNumber(operations, 7.94);
}
static void ProcessAndDisplayNumber(DoubleOp action, double value)
{
Console.WriteLine("\nProcessAndDisplayNumber called with value = " + value);
action(value);
}
}
class MathsOperations
{
public static void MultiplyByTwo(double value)
{
double result = value*2;
Console.WriteLine("Multiplying by 2: {0} gives {1}", value, result);
}
}
lwplay
2004-09-15
打赏
举报
回复
学习
wdwd05
2004-09-15
打赏
举报
回复
...,代理解决
ncowboy
2004-09-15
打赏
举报
回复
楼主,你是要启动一个新的线程么?
你给你的类多个构造函数,或许就能够满足你的要求了。你通过实例化不同的类,就可以达到传递参数给方法的效果。
superhasty
2004-09-15
打赏
举报
回复
MSDN中看到过。
悄悄的回来了
2004-09-15
打赏
举报
回复
用代理.
mywebcom
2004-09-15
打赏
举报
回复
Type type = Type.GetType("MyClassName");//类名作为变两名
shang123guan
2004-09-14
打赏
举报
回复
不要分,只想顶
krjzz
2004-09-14
打赏
举报
回复
天涯,你的程序有问题。
F:\学习\c#程序\ConsoleApplication3\Class1.cs(19): 在不带括号的情况下引用了方法“TestMain.SayB()”
F:\学习\c#程序\ConsoleApplication3\Class1.cs(18): 在不带括号的情况下引用了方法“TestMain.SayA()”
怎么解决啊?谢谢。
khpcg
2004-09-14
打赏
举报
回复
楼主你思考的问题很高深啊
赞成用代理
yellowhwb
2004-09-14
打赏
举报
回复
类名不可以做为类的属性,但在函数里可以作为变量使用!
public class myClass
{
//public int myClass=0;//错误“成员名称不能与它们的封闭类型相同”
public myClass()
{
int myClass;//正确
}
}
dreammaster
2004-09-14
打赏
举报
回复
jiezhi(風依舊) 用的反射方法就是用一个string的classname来做变量。
你是说用一个typeof()的东东吗?
fanmingwu
2004-09-14
打赏
举报
回复
类名可不可以做为变量名啊??
jimh
2004-09-14
打赏
举报
回复
同意天涯的意见
jiezhi
2004-09-14
打赏
举报
回复
/// <summary>
/// 运行已知类名的方法
/// </summary>
/// <param name="className"></param>
/// <param name="methodName"></param>
/// <param name="parameters"></param>
/// <returns></returns>
public static object RunMethod(string className,string methodName,object[] parameters)
{
Type t = Type.GetType(className,true,true);
t = Assembly.GetAssembly(t).GetType(className);
MethodInfo m = t.GetMethod(methodName);
object obj = Activator.CreateInstance(t);
return m.Invoke(obj,parameters);
}
dreammaster
2004-09-14
打赏
举报
回复
用delegate
public class Test {
public delegate viod MyDelegate();
public void ProcessDelegate(MyDelegate myDelegate){
myDelegate();
}
}
public class TestMain{
public static void Main()
{
Test test = new Test();
test.ProcessDelegate(SayA);
test.ProcessDelegate(SayB);
}
public void SayA()
{Console.WriteLine("A");}
public void SayB()
{
Console.WriteLine("B");
}
}
adailee
2004-09-14
打赏
举报
回复
new ThreadStart(Hotel.run())应该这样写:new ThreadStart(Hotel.run)。
这是代理(Delegate)的用法。
test7979
2004-09-14
打赏
举报
回复
可以这样:
methodInfo = 使用反射得到类型的方法
Delegate.CreateDelegate(typeof(ThreadStart), methodInfo)
C#
基础知识(六)_
函数
(方法),类,接口
C#
基础知识(六)_
函数
(方法),类,接口
C#
学习记录——入门到进阶
输入输出 //输出语句:换行输出 Console.WriteLine("hool,word"); Console.WriteLine("hool
c#
"); //输出语句,无换行输出 Console.Write("hool word"); Console.Write("hool
c#
"); //
【
C#
】泛型
泛型是将类型作为
参数传递
给类、结构、接口和方法,这些参数相当于类型占位符。当我们定义类或方法时使用占位符代替
变量
类型,真正使用时再具体指定数据类型,以此来达到代码重用目的。
C#
基础教程 | 方法的语法,行参实参
1 方法的声明 public static 返回值类型
函数
名
([参数列表]) //返回值类型就是
变量
类型,int double string {
函数
代码体: } 说明: 【piblic】:访问修饰符,公开的,公共的,哪里都可以访问。 【static】:静态标识符; 【返回值类型】:如果不需要返回值就写void,就是无返回值的意思; 【方法
名
】:当前方法的
名
字,要符合pascal命
名
规范;首字母大写 【参数列表】:如果不需要参数,小括号中可以直接留空;如果需要参数,以:【参数类型 参数
名
】 形式书写
Unity
C#
编程规范:命
名
法与
函数
设计提升代码可读性与可维护性
在软件开发中,良好的代码规范是保障项目长期健康发展的基石。从概念上讲,命
名
规范和
函数
设计是编程语言的基础元素,它们共同构成了代码的可读性骨架。其原理在于通过统一的命
名
约定(如驼峰命
名
法和帕斯卡命
名
法)和清晰的
函数
结构,降低代码的理解成本,提升团队协作效率。在技术价值层面,规范的代码不仅便于调试和维护,还能显著减少因命
名
混乱或
函数
职责不清引发的错误。尤其在游戏开发等复杂应用场景中,面对频繁迭代和多人协作,遵循
C#
命
名
规范、合理设计
函数
参数与返回值、理解值类型与引用类型的传递差异,成为编写健壮、高效代码的关键。
C#
111,129
社区成员
642,533
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章