【问题标题】:What does this mean in an argument type. What is it called? [duplicate]这在参数类型中意味着什么。这叫什么? [复制]
【发布时间】:2020-05-31 23:29:54
【问题描述】:

我遇到了以下代码

 public static IMyQueries<T> Foo<T>(this ASet<T> items)
 {
           ...
 }

我的问题是在这个函数的参数中使用了关键字this。这是为什么 ?据我了解, ASet 是模板化的类型名。为什么关键字this 在那里。有人可以举一个简单的例子说明为什么this 被用作参数吗?

【问题讨论】:

标签: c#


【解决方案1】:

说明该函数是ASet类型的扩展。

字符串扩展的示例可能是:

    public static class Extensions
    {
        public static string SayHiExtension(this string to)
        {
            return $"Hello {to}";
        }

        public static string SayHi(string to)
        {
            return $"Hello {to}";
        }
    }

和用法区别:

  string name = "World";

   // Extension
  string output = name.SayHiExtension();

  // Without extension
  output = Extensions.SayHi(name);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-07-08
    • 1970-01-01
    • 2014-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-05
    相关资源
    最近更新 更多