方法不同

本文关键字:方法 | 更新日期: 2023-09-27 18:26:38

我是C#的新手,我正在努力理解在方法中传递参数和不传递参数的区别。

我想我有点理解。如果你通过一场辩论,会是这样吗。

int numA = 4;
int productA =  squar(numA); 

我只是不明白如何有一个不传递参数的方法。

方法不同

您的问题不是很清楚,C#有一些"高级"功能可以发挥作用,但在简单的C#中,当您调用一个方法时,每个参数(在调用代码中)都必须与方法声明中的参数相对应。您可以用几个参数声明方法,只有一个或没有:

public void Foo() // No parameters
{
    Console.WriteLine("Foo!");
}
public void Bar(int x) // One parameter
{
    Console.WriteLine("Bar!");
}
public void Baz(int x, string y) // Two parameters
{
    Console.WriteLine("Baz!");
}

然后给他们打电话:

Foo(); // No arguments
Bar(10); // One argument
Baz(20, "second"); // Two arguments

参数的类型必须与相应方法声明中的参数类型兼容。

如果您想使用带参数和不带参数的相同方法,您必须为此编写方法重载。它不是c的概念,而是面向对象编程的一部分。

    public string Test() // No parameters
    {
        return "test method";
    }
    public string Test(string testParam) // with parameters
    {
        return "test method with parameter " + testParam;
    }

所以你可以打电话给

Test();
Test("string parameter");

结果,

test method
test method with parameter string parameter

如果您使用的是C#4.0及更高版本,则有一个称为可选参数的新功能。

假设你有一个类似的方法签名

static void Method(int value = 1, string name = "Perl")
{
     Console.WriteLine("value = {0}, name = {1}", value, name);
}

    Method(); //prints 1, Perl

    Method(4);//prints 4, perl

    Method("Dot"); // prints 1, Dot

    Method(4, "Dot"); //prints 4, Dot