new-一个泛型的问题?C#泛型代码怎么修改?

问题描述

一个泛型的问题?C#泛型代码怎么修改?

C#泛型代码怎么修改?
void GetEntity()
{
if (this.Value == null)
this.Value = new T();
return new T();
}

解决方案

 T GetEntity<T>() where T : class, new()
 {
 if (this.Value == null)
 this.Value = new T();
 return this.Value;
 }

解决方案二:

GetEntity()

解决方案三:

GetEntity《T》()
尖括号也发不了,只能用书名号了

解决方案四:

    void GetEntity<T>()
    {
        if (this.Value == null)
            this.Value = default(T);
    }

解决方案五:

 T GetEntity<T>() where T : class, new()
 {
 if (this.Value == null)
 this.Value = new T();
 return this.Value();
 }
时间: 2024-06-16 04:10:56

new-一个泛型的问题?C#泛型代码怎么修改?的相关文章

编写高质量代码改善C#程序的157个建议[优先考虑泛型、避免在泛型中声明静态成员、为泛型参数设定约束]

原文:编写高质量代码改善C#程序的157个建议[优先考虑泛型.避免在泛型中声明静态成员.为泛型参数设定约束] 前言 泛型并不是C#语言一开始就带有的特性,而是在FCL2.0之后实现的新功能.基于泛型,我们得以将类型参数化,以便更大范围地进行代码复用.同时,它减少了泛型类及泛型方法中的转型,确保了类型安全.委托本身是一种引用类型,它保存的也是托管堆中对象的引用,只不过这个引用比较特殊,它是对方法的引用.事件本身也是委托,它是委托组,C#中提供了关键字event来对事件进行特别区分.一旦我们开始编写

编写高质量代码改善C#程序——使用泛型集合代替非泛型集合(建议20)_MsSql

软件开发过程中,不可避免会用到集合,C#中的集合表现为数组和若干集合类.不管是数组还是集合类,它们都有各自的优缺点.如何使用好集合是我们在开发过程中必须掌握的技巧.不要小看这些技巧,一旦在开发中使用了错误的集合或针对集合的方法,应用程序将会背离你的预想而运行. 建议20:使用泛型集合代替非泛型集合 在建议1中我们知道,如果要让代码高效运行,应该尽量避免装箱和拆箱,以及尽量减少转型.很遗憾,在微软提供给我们的第一代集合类型中没有做到这一点,下面我们看ArrayList这个类的使用情况: Array

发现和C++的泛型相比,C#的泛型简直是垃圾都不如

问题描述 发现和C++的泛型相比,C#的泛型简直是垃圾都不如 解决方案 解决方案二:同意的请排队申请微软改进解决方案三:坐等被喷./.解决方案四:发现和楼主的嘴相比,杨幂的臭脚简直比香水还香解决方案五:引用3楼KarasCanvas的回复: 发现和楼主的嘴相比,杨幂的臭脚简直比香水还香 你怎么知道杨幂的脚臭,难道你经常闻?!解决方案六:引用3楼KarasCanvas的回复: 发现和楼主的嘴相比,杨幂的臭脚简直比香水还香 天哪,原来是一个技术大牛,是不是得罪了没好果子吃.果断匿了!解决方案七:浮躁

泛型函数如何定义泛型委托

问题描述 泛型函数如何定义泛型委托 Class cA Function F(Of T)(ByVal Num As T) As T End Function Delegate Function _F(Of In T, Out O)(ByVal Num As T) As O Shadows F As _F(Of T, O) = New _F(Of T,O)(addressof F(Of T) End Class Shadows F As _F(Of T, O) = New _F(Of T,O)(ad

浅谈Java泛型通配符解决了泛型的许多诟病(如不能重载)_java

泛型: package Java基础增强; import java.util.ArrayList; import java.util.List; import org.junit.Test; public class Test2 { @Test public void fun1(){ Object[] objects = new Object[10]; List list = new ArrayList(); String[] strings = new String[10]; List<Str

新人写的关于一个比对文件差异的代码

问题描述 新人写的关于一个比对文件差异的代码 public class Compare { LinkedList list1 = new LinkedList();//用来存放文件夹的绝对路径 LinkedList list2 = new LinkedList();//用来存放文件的绝对路径 public void files(String filename) throws IOException { //定义一个files方法,这个方法用来把对应路径下的文件夹遍历 File file = ne

一个汉字转成拼音的代码

一个汉字转成拼音的代码 [ 繁體中文 ] | 文章类别:ASP实例 | 文章等级: | 发表日期:2004-4-20  星期二 [ 计数器 | 精彩博客 | 魔法表情 | 博客申请 | 源码下载 | IP查询 | Html2Js ] 转自:动态网制作指南 www.knowsky.com1.添加索引2.遍历词典 <%Set d = CreateObject("Scripting.Dictionary")d.add "a",-20319d.add "ai

junit 如何测试一个方法中的每行代码是否都被执行过?

问题描述 junit 如何测试一个方法中的每行代码是否都被执行过? 如题 测试一个方法中的每行代码是否都被执行过?是否有多余的代码? 解决方案 要知道一个代码块里面的代码是否被执行过,其实可以在该代码块最后加个输出语句即可,如果输出语句有执行,那么 前面的代码必然有执行. 但执行效果不一定是你的预期效果罢了(因为代码不一定是符合你的设计需求的) 解决方案二: 是否有多余的代码? 这个应该有代码校验工具. 解决方案三: 你这说的是白盒测试中的覆盖率测试,如果代码中有分支语句,需要编写多个测试用例才

c-使用VC++建立一个CDib类库 但无法生成 代码与错误如下 求指导

问题描述 使用VC++建立一个CDib类库 但无法生成 代码与错误如下 求指导 /*声明*/ #ifndef _CDIB_H #define _CDIB_H class CDib :public CObject{ //父类为CObject public: RGBQUAD*m_pRGB; BYTE*m_pData; UINT m_numberOfColors; BOOL m_valid; BITMAPFILEHEADER bitmapFileHeader; BITMAPINFOHEADER *m_