Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#语法我不懂,初学者_C# - Fatal编程技术网

C#语法我不懂,初学者

C#语法我不懂,初学者,c#,C#,好的,对于C#来说还是很陌生的,如果这是显而易见的,那么很抱歉 有些代码我无法理解,这些代码是由比我更擅长C#的人编写的 我们有一个类,称之为“CC”,它有许多字段,其中一个是“FORM_NBR” 因此,简而言之: public class CC { public CC(); //Many, many fields... ... public long FORM_NBR { get; set; } ... } 在某个时刻,一个对象被创建

好的,对于C#来说还是很陌生的,如果这是显而易见的,那么很抱歉

有些代码我无法理解,这些代码是由比我更擅长C#的人编写的

我们有一个类,称之为“CC”,它有许多字段,其中一个是“FORM_NBR”

因此,简而言之:

public class CC
    {
    public CC();

    //Many, many fields...
    ...
    public long FORM_NBR { get; set; }
    ...
    }
在某个时刻,一个对象被创建

CC c = new CC();
然后这条线被称为:

c.FORM_NBR = c.FORM_NBR.GetCheckDigit(' ');
现在,在我们继承的库的深处有一个函数:

public static short GetCheckDigit(this long nFormNbr, char chFormTypCd)
{
    short nCkDgt = 0;   // Default to 0

    switch (chFormTypCd)
    {
        //Many, many cases...
        ...

        default:
            nCkDgt = CalculateCheckDigit(nFormNbr);
            break;
    }

    return nCkDgt;
}
我的问题是。作为C#的新手,GetCheckDigit是如何从long调用的?这是什么语法


我甚至不知道我会如何描述/谷歌这个

这是一种
扩展方法

扩展方法使您能够向现有类型“添加”方法,而无需创建新的派生类型、重新编译或以其他方式修改原始类型。扩展方法是一种特殊的静态方法,但它们被调用时就像它们是扩展类型上的实例方法一样。对于用C#、F#和Visual Basic编写的客户机代码,调用扩展方法和在类型中实际定义的方法之间没有明显的区别

发件人:

这篇文章中有一个很好的例子:


GetCheckDigit是long类型的扩展方法


GetCheckDigit基本上是long类型的扩展。您可以在第一个参数处看到它。“this long”表示此函数可以在long类型上运行。