Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/274.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“带a的类”;“隐藏的”;方法_C#_.net_Class - Fatal编程技术网

C# C“带a的类”;“隐藏的”;方法

C# C“带a的类”;“隐藏的”;方法,c#,.net,class,C#,.net,Class,我正在使用我没有编写的名称空间编写一个程序。在这个名称空间中有一个名为Message的类。这就是我感到困惑的地方。我能够编译类似于以下内容的代码: void Func(Message message) { BasePlayer player = message.Player(); } 我感到困惑的原因是Message类中不存在方法播放器,Message也不继承任何其他类。有人能解释一下这是怎么发生的吗?我很乐意根据请求分享更多信息。该类可能没有“声明”该类,但它可能由另一个类作为扩展提

我正在使用我没有编写的名称空间编写一个程序。在这个名称空间中有一个名为Message的类。这就是我感到困惑的地方。我能够编译类似于以下内容的代码:

void Func(Message message)
{
    BasePlayer player = message.Player();
}
我感到困惑的原因是Message类中不存在方法播放器,Message也不继承任何其他类。有人能解释一下这是怎么发生的吗?我很乐意根据请求分享更多信息。

该类可能没有“声明”该类,但它可能由另一个类作为扩展提供

您可以这样看,在accpeted响应的代码中可以看到您可以为其他类提供方法。即使它们是密封的

您的案例可能就是这样。

该类可能没有“声明”该类,但它可能由另一个类作为扩展提供

您可以这样看,在accpeted响应的代码中可以看到您可以为其他类提供方法。即使它们是密封的


您的案例可能就是这样。

可能有一个名为
Player
消息的扩展,该扩展接受零参数。右键单击Player并选择“转到定义”。它带你到方法,你可以看到自己是什么。您可能正在查看另一个名为Message的类,或者一个扩展方法(忍者编辑完全不是受@Jonesopolis comment的启发)写下Player方法时,请查看intellinsense,看看它是否是一个扩展方法。
我感到困惑的原因是,方法Player不存在于Message类中,Message不继承任何其他类
我保证它会继承,或者这不会编译-它可能不在您正在查找的位置。正如其他人提到的,扩展方法允许您扩展一个类,或者如果它是一个分部类,则可以在多个文件中定义它。
Player()
上的F12将带您进入定义。@davidly扩展方法不定义分部类这里可能有一个名为
Player
消息的扩展,该扩展接受零参数。右键单击Player并选择“转到定义”。它带你到方法,你可以看到自己是什么。您可能正在查看另一个名为Message的类,或者一个扩展方法(忍者编辑完全不是受@Jonesopolis comment的启发)写下Player方法时,请查看intellinsense,看看它是否是一个扩展方法。
我感到困惑的原因是,方法Player不存在于Message类中,Message不继承任何其他类
我保证它会继承,或者这不会编译-它可能不在您正在查找的位置。正如其他人提到的,扩展方法允许您扩展一个类,或者如果它是一个分部类,则可以在多个文件中定义它。
Player()
上的F12将带您进入定义。@DavidLily扩展方法不定义分部类谢谢!我浏览了这个课程的用法,找到了。谢谢!我通读了这门课的用法,终于找到了。