草庐IT

TYPE_NULL

全部标签

c# - 通用约束 : Can I test Equality of generic that can be a reference or value type?

我想要一个通用类,它可以接受引用类型或值类型,并且只执行基于相等性测试的操作。考虑以下几点:publicclassPropertywhereTProp:struct,IEquatable{publicTPropValue;publicvoidSetValue(ObservableObjectowner,TPropvalue){if(!Value.Equals(value))//cannotuse!=onstructconstrainedTProp{//...settheproperty}}}publicclassByRefPropertywhereTProp:class//Dontwa

c# - 字段 xxx 从未分配给,并且始终具有默认值 null

有人知道这是什么问题吗?我在privatestaticQuantizerquantit;上收到此警告Fieldxxxisneverassignedto,andwillalwayshaveitsdefaultvaluenull我不知道该怎么做才能修复,因为当我尝试使用quantit.Quantize()时debug说:“对象引用未设置到对象的实例。”并指向au=quantit.Quantize();代码:publicclassQuantization:System.Windows.Forms.Form{privatestaticQuantizerquantit;privateButton

c# - 通用类和 Type.GetType()

有点困惑,我有一个通用类publicabstractclassMyClass:UserControl{}我有一个这样的类型Typetype=Type.GetType("TypeFromDBasString",true,true);我想使用类型创建MyClass的实例...但这不起作用。MyClasscontrol=(MyClass)LoadControl("/UsercControl.ascx");有什么想法吗???? 最佳答案 像这样:TypetypeArgument=Type.GetType("TypeFromDBasStrin

C# -- 是否需要检查 "obj is Person && obj != null"

我看到了下面的代码,publicoverrideboolEquals(objectobj){//Fromthebookhttp://www.amazon.co.uk/Pro-2010-NET-4-0-Platform/dp/1430225491//Page254!if(objisPerson&&obj!=null)...}根据我的理解,我认为代码应该重写如下:publicoverrideboolEquals(objectobj){if(objisPerson)...}对吗?基于http://msdn.microsoft.com/en-us/library/scekt9xw%28v=vs

c# - 调试器可视化工具和 "Type is not marked as serializable"

我正在尝试创建一个调试器可视化工具,它会显示任何Control的控件层次结构。它已完成,但我收到异常“类型未标记为可序列化”。我该如何克服呢?控件是.NETWindows窗体框架类型,我无法将其标记为可序列化。 最佳答案 您还需要实现VisualizerObjectSource执行自定义序列化。例子:publicclassControlVisualizerObjectSource:VisualizerObjectSource{publicoverridevoidGetData(objecttarget,StreamoutgoingD

c# - HKLM\Software 下的 OpenSubKey 返回 null

这是我的代码:Microsoft.Win32.RegistryKeykey=Microsoft.Win32.Registry.LocalMachine.OpenSubKey(@"SOFTWARE\ADM");注册表项存在于机器上。键始终为空。我认为这不是安全问题。我以管理员身份运行。(我什至明确地在管理员模式下运行程序集)。我正在使用在Windows764位上运行的VisualStudio2010。 最佳答案 问题是我运行的是64位,而我的应用程序被编译为32位。正在读取的key:Microsoft.Win32.RegistryKe

c# - "thread-safe type"到底是什么?我们什么时候需要使用 "lock"语句呢?

我阅读了所有关于线程安全类型和“锁定”语句的文档,但我仍然没有100%理解它。具体什么时候需要使用“lock”语句?它与(非)线程安全类型有何关系?谢谢。 最佳答案 想象一个类的实例,里面有一个全局变量。想象一下,两个线程同时对该对象调用一个方法,并且该方法更新内部的全局变量。变量中的值很可能会被破坏。不同的语言和编译器/解释器会以不同的方式处理这个问题(或者根本不处理......)但关键是你会得到“不希望的”和“不可预测的”结果。现在假设该方法在尝试读取或写入变量之前获得变量的“锁”。第一个调用该方法的线程将获得变量的“锁”,第二

c# - 如果使用 SingleOrDefault() 并在数字列表中搜索不在列表中的数字,如何返回 null?

当使用SingleOrDefault()查询正数列表时,如果在列表中找不到数字而不是返回null或自定义值(如-1)类型的默认值(在本例中为0)? 最佳答案 你可以使用:varfirst=theIntegers.Cast().SingleOrDefault(i=>i==theValue)??valueIfNotFound;这通过将项目转换为Nullable来实现,然后使用null-coalescingoperator如果null返回您选择的值被退回(即:未找到)。请注意,如果您有多个匹配项,则会抛出此异常。如果您不想要这种行为,请使

c# - Coroutine中的 "yield return 0"和 "yield return null"有什么区别?

我是新手,对“yield”有点困惑。但最后我明白了它是如何使用WaitForSeconds工作的但我看不出“yieldreturn0”和“yieldreturnnull”之间的区别。他们都在等待下一帧执行吗?抱歉我的英语不好。非常感谢。 最佳答案 yieldreturn0和yieldreturnnull都为单个帧生成。最大的区别是yieldreturn0分配内存是因为0在后台发生的装箱和拆箱,但是yieldreturnnull确实不分配内存。因此,如果您关心性能,强烈建议使用yieldreturnnull。

c# - 如何将类型为 "Type"的变量传递给泛型参数

我正在尝试这样做:Typetype=Type.GetType(string.Format("Gestor.Data.Entities.{0},Gestor.Data",e.Item.Value));MetaDataUtil.GetColumnasGrid();但它不起作用,你知道我该怎么做吗? 最佳答案 你需要为此使用反射。varmethod=typeof(MetaDataUtil).GetMethod("GetColumnasGrid").MakeGenericMethod(new[]{type}).Invoke(null,nul