我在以下方法中理解参数this flowDocument doc
时遇到问题:
public static FormattedText GetFormattedText(this FlowDocument doc)
{
if (doc == null)
{
throw new ArgumentNullException("doc");
}
...
}
调用者在调用上述方法时不指定参数:
myRichTextBox.TextChanged +=
new TextChangedEventHandler((o, e) => myRichTextBox.Width =
myRichTextBox.Document.GetFormattedText().WidthIncludingTrailingWhitespace + 20);
我很肯定该方法不创建doc
本身。我之前没有看到this
以这种方式使用过。
答案 0 :(得分:5)
GetFormattedText()
不是常规方法,而是extension method。
您可以这样称呼它:
document.GetFormattedText()
或者这个:
ClassName.GetFormattedText(document)
答案 1 :(得分:1)
这是extension method的语法,参数是调用该方法的FlowDocument
对象:
myRichTextBox.Document.GetFormattedText().WidthIncludingTrailingWhitespace + 20);
^
|
-------------------|