我现在正在学习C++,因为我需要编写一些低级程序.
当我了解"auto"关键字时,它会从C#中提醒我"var"关键字.
那么,C#"var"和C++"auto"的区别是什么?
我听说C#是一种纯粹的面向对象的编程语言,因为所有的东西都源于System.Object
.
所以我怀疑方法本身的类型是什么.我尝试使用StackTrace
和StackFrame
获取方法的类型,但我得到了类的名称,声明了哪些方法.
当然,我试过这个:
var func = new TestClass().TestMethod; //TestMethod is a method of TestClass
Run Code Online (Sandbox Code Playgroud)
但是我只得到了这个错误.
CS0815 Cannot assign method group to an implicitly-typed variable
Run Code Online (Sandbox Code Playgroud)
可以将方法分配给Func<..., TResult>
类型变量.我用Func和返回字符串的方法测试,然后我得到了这个:
// Result of
// Func<string> func = new TestClass().TestMethod;
// func.GetType();
Instance TestClass -> TestMethod Type : System.Func`1[System.String]
Run Code Online (Sandbox Code Playgroud)
但它是一个类型名称Func<string>
.那么,方法的真正类型名称是什么?
编辑2018年2月10日上午01:46,KST(GMT +09:00)
好吧,让我总结一下.函数本身没有类型,也不是对象,并且Delegate
/ Func<>
是.NET Framework的一个功能,它将函数作为一等公民处理(但它不是FCC).这是对的吗?