-
静态成员(静态方法、静态属性等)不属于类的任何个体对象,它们属于类本身。因此,不能通过实例化的对象来调用静态方法。而应该直接通过类名来调用静态成员,如下:
```csharp
Calculator.Report();
```反过来,非静态方法(如`Add`和`Sub`方法)则需要通过实例化的对象来调用。如下:
```csharp
Calculator cal = new Calculator();
cal.Add(1, 2);
cal.Sub(3, 2);
``` - 声明委托后实例化委托报错
在声明委托的时候,把代码输入如下:`Cal<int,int,int>cal1=new Cal(calculator.Add);`,这是不正确的。由于在定义Cal委托时,已经明确定义参数和返回值类型(即int),不需要在实例化时在后面再加类型。同时,你在实例化Cal委托时,参数列表需要类型匹配的方法名。但是Func和Action是C#预建的泛型委托类型,它们可以接受不同的输入和返回不同类型的输出。它们的参数和返回类型在编译时并不确定,需要在实例化时明确指定。所以,在使用Func和Action时需要加类型。
Func委托用于封装有返回值的方法,Action委托用于封装没有返回值的方法。Func和Action委托的主要目的是为了简化和统一委托定义,使用它们可以避免为每一种具体的输入和输出组合创建新的委托类型。
举例来说,Func<int, string>代表一个接受一个int类型的参数并返回一个string的方法,而Action<int, string>代表一个接受一个int和一个string参数,但没有返回值的方法。 - ctrl+. 自动修正代码格式
- 使用core模板创建windows窗体引用windows.form失败
(已解决)vsC#控制台应用添加System.Windows.Forms引用失败(精通C#) - 莫提默 - 博客园 (cnblogs.com) - Core和Framework的区别
.NET Framework和.NET Core_.net framework .net core-CSDN博客