C#"this"关键字如何在静态方法中限定参数?

Sab*_*ncu 0 c# wpf this richtextbox

我在解决this flowDocument doc以下方法中的参数时遇到问题:

public static FormattedText GetFormattedText(this FlowDocument doc)
{
    if (doc == null)
    {
        throw new ArgumentNullException("doc");
    }
    ...
}
Run Code Online (Sandbox Code Playgroud)

调用方没有调用上述方法时指定一个参数:

myRichTextBox.TextChanged +=
    new TextChangedEventHandler((o, e) => myRichTextBox.Width = 
        myRichTextBox.Document.GetFormattedText().WidthIncludingTrailingWhitespace + 20);
Run Code Online (Sandbox Code Playgroud)

我肯定的方法并没有创造doc本身.我之前没见过this以这种方式使用过.

thu*_*eys 5

GetFormattedText()不是常规方法,而是扩展方法.

你可以这样称呼它:

 document.GetFormattedText()
Run Code Online (Sandbox Code Playgroud)

或这个:

 ClassName.GetFormattedText(document)
Run Code Online (Sandbox Code Playgroud)