www.91084.com

GVKun编程网logo

如何在 xml 文档中引用泛型类和方法(如何在 xml 文档中引用泛型类和方法类型)

14

在本文中,我们将为您详细介绍如何在xml文档中引用泛型类和方法的相关知识,并且为您解答关于如何在xml文档中引用泛型类和方法类型的疑问,此外,我们还会提供一些关于android如何在xml中引用内部类

在本文中,我们将为您详细介绍如何在 xml 文档中引用泛型类和方法的相关知识,并且为您解答关于如何在 xml 文档中引用泛型类和方法类型的疑问,此外,我们还会提供一些关于android 如何在 xml 中引用内部类 View、c# – 使用泛型类中定义的泛型参数调用非泛型方法、c# – 如何制作采用泛型类型的泛型方法、c# – 如何在xml文档中显示泛型参数参数的有用信息。

本文目录一览:

如何在 xml 文档中引用泛型类和方法(如何在 xml 文档中引用泛型类和方法类型)

如何在 xml 文档中引用泛型类和方法(如何在 xml 文档中引用泛型类和方法类型)

在编写 xml 文档时,您可以使用<seecref="something">something</see>,当然可以。但是如何引用具有泛型类型的类或方法呢?

public class FancyClass<T>{  public string FancyMethod<K>(T value) { return "something fancy"; }}

如果我要在某处编写 xml 文档,我将如何引用花哨的类?我怎样才能引用一个FancyClass<string>?方法呢?

例如,在另一个类中,我想让用户知道我将返回一个FancyClass<int>. 我怎么能为此做一个see cref的事情?

答案1

小编典典

要引用该方法:

/// <see cref="FancyClass{T}.FancyMethod{K}(T)"/> for more information.

android 如何在 xml 中引用内部类 View

android 如何在 xml 中引用内部类 View

android 如何在 xml 中引用内部类 View 如果大家觉得 eoe 的博客界面实在是丑,请移驾到本人的 iteye 博客: http://titanseason.iteye.com/blog/1831185 看这篇文章 比如在类 com.example.ClassA 中定义了一个类 ViewB,那么怎么样在 xml 中引用 ViewB 呢? 首先要注意的是 ViewB 定义的时候,必须定义成静态的,就是 public static ViewB 假设 ViewB 继承自 View,那么在 xml 中可以这样定义 ```xml <Viewandroid:layout_width="match_parent"android:layout_height="match_parent"/>``` 假设 **ViewB 继承自 ViewGroup**,那么在 xml 中可以这样定义 ```xml <ViewGroupandroid:layout_width="match_parent"android:layout_height="match_parent"> <!-- ViewGroup 内部的一些控件,比如 button 之类的 --> </ViewGroup>```

c# – 使用泛型类中定义的泛型参数调用非泛型方法

c# – 使用泛型类中定义的泛型参数调用非泛型方法

这是我的问题;
public class MyClass<T>
{
   public void DoSomething(T obj)
   {
      ....
   }
}

我做的是:

var classtype = typeof(MyClass<>);
Type[] classtypeArgs = { typeof(T) };
var genericclass = classtype.MakeGenericType(classtypeArgs);
var classInstance = Activator.CreateInstance(genericclass);
var method = classtype.getmethod("DoSomething",new[]{typeof(T)});
method.Invoke(classInstance,new[]{"Hello"});

在上面的例子中,我得到的异常是:无法对ContainsGenericParameters为true的类型或方法执行后期绑定操作.

如果我尝试使方法通用,它会再次失败并出现异常:
MakeGenericmethod只能在MethodBase.IsGenericmethodDeFinition为true的方法上调用.

我该如何调用该方法?

解决方法

您正在错误的对象上调用getmethod.使用绑定的泛型类型调用它,它应该工作.这是一个完整的样本,它可以正常工作:
using System;
using System.Reflection;

internal sealed class Program
{
    private static void Main(string[] args)
    {
        Type unboundGenericType = typeof(MyClass<>);
        Type boundGenericType = unboundGenericType.MakeGenericType(typeof(string));
        MethodInfo doSomethingMethod = boundGenericType.getmethod("DoSomething");
        object instance = Activator.CreateInstance(boundGenericType);
        doSomethingMethod.Invoke(instance,new object[] { "Hello" });
    }

    private sealed class MyClass<T>
    {
        public void DoSomething(T obj)
        {
            Console.WriteLine(obj);
        }
    }
}

c# – 如何制作采用泛型类型的泛型方法

c# – 如何制作采用泛型类型的泛型方法

我想写下面的方法
private void Foo<T,TItem>(T<TItem> param1)

其中T必须是以TItem作为其通用信息的泛型类型.

调用示例如下:

private void Main()
{
    List<int> ints = new List<int>();
    Foo<List,int>(ints);    
}

编辑:
就我而言,我只需要收藏.
实际的用例是我想编写一个方法,向ICollection添加一些东西,遗憾的是ICollection没有.Add方法只有ICollection< T>有它.

我无法将方法更改为:

private Foo<T>(ICollection<T>)

因为我失去了信息实际列表的类型,这对我来说比列表中的项目类型更重要.

所以上述想法诞生了,但没有奏效.

解决方法

由于您只需要集合,您可以描述这样的方法:
private void Foo<T,TItem>(T param1)
    where T: ICollection<TItem>
{
}

但是在这种情况下,您需要提供特定的泛型类型(List< int>)作为第一个通用参数,您不能只使用List:

List<int> ints = new List<int>();
Foo<List<int>,int>(ints);

c# – 如何在xml文档中显示泛型参数参数

c# – 如何在xml文档中显示泛型参数参数

我可以像这样引用泛型类型/方法定义:

/// <summary>
/// Takes a <see cref="Func{T}"/>.
/// </summary>
public void Method<T>(Func<T> func) { }

但是这不起作用:

/// <summary>
/// Takes a <see cref="Func{Int32}"/>.
/// </summary>
public void Method(Func<int> func) { }

ReSharper /生成的帮助文件说Func< TResult>.

解决方法

在第一个示例中,您将cref属性的类型指定为类型:Func< T>.这与System命名空间中的类型完全匹配.我们需要为该类型的文档创建一个链接: Func<TResult>.它很容易找到并链接到.请注意,这会生成一个指向一种类型的链接.

在第二个示例中,当您查找类型Func< Int32>时,这实际上不是具有文档的类型,您可以指向它. System命名空间中的类型是通用的,并带有一个参数.您可能不认为它是完全匹配,但解析器假设Int32是您用于type参数的名称,并且您希望指向它可以在System命名空间中轻松找到的类型.同样,这会生成一个指向您实际可以在System命名空间中找到的类型的链接.

您可能想要创建一个使用两个链接到两种类型的引用,就像在Enumerable.Sum参考页面上完成的那样.对于这种方法,

public static int Sum<TSource>(
    this IEnumerable<TSource> source,Func<TSource,int> selector
)

他们使用两个链接记录参数选择:

Type: 07002<TSource,07003>

在这里,他们引用了两种类型,而不是一种.其中一个链接看起来像是对委托组System.Func的引用(它也不是我们可以指向的文档类型),但它实际上指向System.Func< T,TResult>代表的文件.另一个链接是system.int32.

如果你变得更正式,你可以这样做. xml通过编译器验证,如果使用则不更改

<see cref="T:System.Func{T:system.int32}"/>

但是,我不知道它将如何显示在大多数模板中.它是用于记录Entity Framework源代码的内容.有关示例(不能很好地显示),您可以查看System.Data.Entity.Core.Common.CommandTrees.ExpressionBuilder namespace的文档.

我也看到它完成了

<see cref="T:System.Func &lt; T:system.int32 &gt;"/>

再次,忽略模板以很好地显示它并且仅通过xml,这产生了通过编译器语法验证的标记.当您从xml转换为创建实际文档时,您可能会有更好的运气.

我们今天的关于如何在 xml 文档中引用泛型类和方法如何在 xml 文档中引用泛型类和方法类型的分享就到这里,谢谢您的阅读,如果想了解更多关于android 如何在 xml 中引用内部类 View、c# – 使用泛型类中定义的泛型参数调用非泛型方法、c# – 如何制作采用泛型类型的泛型方法、c# – 如何在xml文档中显示泛型参数参数的相关信息,可以在本站进行搜索。

本文标签: