在本文中,我们将为您详细介绍如何在xml文档中引用泛型类和方法的相关知识,并且为您解答关于如何在xml文档中引用泛型类和方法类型的疑问,此外,我们还会提供一些关于android如何在xml中引用内部类
在本文中,我们将为您详细介绍如何在 xml 文档中引用泛型类和方法的相关知识,并且为您解答关于如何在 xml 文档中引用泛型类和方法类型的疑问,此外,我们还会提供一些关于android 如何在 xml 中引用内部类 View、c# – 使用泛型类中定义的泛型参数调用非泛型方法、c# – 如何制作采用泛型类型的泛型方法、c# – 如何在xml文档中显示泛型参数参数的有用信息。
本文目录一览:- 如何在 xml 文档中引用泛型类和方法(如何在 xml 文档中引用泛型类和方法类型)
- android 如何在 xml 中引用内部类 View
- c# – 使用泛型类中定义的泛型参数调用非泛型方法
- c# – 如何制作采用泛型类型的泛型方法
- c# – 如何在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 如果大家觉得 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# – 使用泛型类中定义的泛型参数调用非泛型方法
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的方法上调用.
我该如何调用该方法?
解决方法
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# – 如何制作采用泛型类型的泛型方法
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文档中显示泛型参数参数
/// <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>.
解决方法
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 < T:system.int32 >"/>
再次,忽略模板以很好地显示它并且仅通过xml,这产生了通过编译器语法验证的标记.当您从xml转换为创建实际文档时,您可能会有更好的运气.
我们今天的关于如何在 xml 文档中引用泛型类和方法和如何在 xml 文档中引用泛型类和方法类型的分享就到这里,谢谢您的阅读,如果想了解更多关于android 如何在 xml 中引用内部类 View、c# – 使用泛型类中定义的泛型参数调用非泛型方法、c# – 如何制作采用泛型类型的泛型方法、c# – 如何在xml文档中显示泛型参数参数的相关信息,可以在本站进行搜索。
本文标签: