草庐IT

有一手

全部标签

c# - 如何约束泛型类型必须有一个采用特定参数的构造函数?

我有一个包装泛型类,旨在与一组类型一起使用。这些类型由实用程序生成,并且全部派生自基类ClientBase。虽然ClientBase只有一个默认构造函数,但所有生成的类型都有默认构造函数以及一个以字符串作为参数的构造函数。在包装类的构造函数中,我使用带有字符串的构造函数实例化了该类型的实例。这是一个示例代码:publicclassClientBase{}publicclassGenericProxywhereT:ClientBase,new(){T_proxy;publicGenericProxy(stringconfigName){_proxy=newT(configName);}}

c# - 如何约束泛型类型必须有一个采用特定参数的构造函数?

我有一个包装泛型类,旨在与一组类型一起使用。这些类型由实用程序生成,并且全部派生自基类ClientBase。虽然ClientBase只有一个默认构造函数,但所有生成的类型都有默认构造函数以及一个以字符串作为参数的构造函数。在包装类的构造函数中,我使用带有字符串的构造函数实例化了该类型的实例。这是一个示例代码:publicclassClientBase{}publicclassGenericProxywhereT:ClientBase,new(){T_proxy;publicGenericProxy(stringconfigName){_proxy=newT(configName);}}

c# - IP 端点 0.0.0.0 :13000. 上已经有一个监听器 ?? (使用 WCF 的 TCP)

我想弄清楚为什么即使在重新启动计算机后仍使用该端口!System.ServiceModel.AddressAlreadyInUseException:ThereisalreadyalisteneronIPendpoint0.0.0.0:13000.ThiscouldhappenifthereisanotherapplicationalreadylisteningonthisendpointorifyouhavemultipleserviceendpointsinyourservicehostwiththesameIPendpointbutwithincompatiblebindingc

c# - IP 端点 0.0.0.0 :13000. 上已经有一个监听器 ?? (使用 WCF 的 TCP)

我想弄清楚为什么即使在重新启动计算机后仍使用该端口!System.ServiceModel.AddressAlreadyInUseException:ThereisalreadyalisteneronIPendpoint0.0.0.0:13000.ThiscouldhappenifthereisanotherapplicationalreadylisteningonthisendpointorifyouhavemultipleserviceendpointsinyourservicehostwiththesameIPendpointbutwithincompatiblebindingc

c# - 一个动态程序集中的多种类型比多个动态程序集各有一种类型慢得多

所以我通过DefineDynamicAssembly发出一些动态代理,在测试时我发现:每个动态程序集一种类型:速度快,但占用大量内存一个动态程序集中的所有类型:非常非常慢,但使用的内存要少得多在我的测试中,我生成了10,000种类型,每个程序集一种类型的代码运行速度大约快8-10倍。内存使用完全符合我的预期,但是生成类型的时间怎么这么长?编辑:添加了一些示例代码。一个组件:varan=newAssemblyName("Foo");varab=AppDomain.CurrentDomain.DefineDynamicAssembly(an,AssemblyBuilderAccess.Ru

c# - 一个动态程序集中的多种类型比多个动态程序集各有一种类型慢得多

所以我通过DefineDynamicAssembly发出一些动态代理,在测试时我发现:每个动态程序集一种类型:速度快,但占用大量内存一个动态程序集中的所有类型:非常非常慢,但使用的内存要少得多在我的测试中,我生成了10,000种类型,每个程序集一种类型的代码运行速度大约快8-10倍。内存使用完全符合我的预期,但是生成类型的时间怎么这么长?编辑:添加了一些示例代码。一个组件:varan=newAssemblyName("Foo");varab=AppDomain.CurrentDomain.DefineDynamicAssembly(an,AssemblyBuilderAccess.Ru

c# - 我可以有一个方法返回 IEnumerator<T> 并在 foreach 循环中使用它吗?

我需要设置表单上每个文本框的高度,其中一些文本框嵌套在其他控件中。我以为我可以做这样的事情:privatestaticIEnumeratorFindTextBoxes(ControlrootControl){foreach(ControlcontrolinrootControl.Controls){if(control.Controls.Count>0){//RecursivelysearchforanyTextBoxeswithineachchildcontrolforeach(TextBoxtextBoxinFindTextBoxes(control)){yieldreturnte

c# - 我可以有一个方法返回 IEnumerator<T> 并在 foreach 循环中使用它吗?

我需要设置表单上每个文本框的高度,其中一些文本框嵌套在其他控件中。我以为我可以做这样的事情:privatestaticIEnumeratorFindTextBoxes(ControlrootControl){foreach(ControlcontrolinrootControl.Controls){if(control.Controls.Count>0){//RecursivelysearchforanyTextBoxeswithineachchildcontrolforeach(TextBoxtextBoxinFindTextBoxes(control)){yieldreturnte

c# - 如果在第一个 `else` 之后有一个 `return` ,这对性能有影响吗?

我现在看到了两种不同的方法来制作bool返回方法:boolCase1(){if(A)returntrue;elsereturnfalse;}boolCase2(){if(A)returntrue;returnfalse;}哪个更快?不写else只是为了节省一行,使其更清晰,还是可以忽略不计的性能提升是否有意义? 最佳答案 没有。即使我们查看它们的IL代码,它们也具有相同的IL代码,因此它们之间没有性能差异。使用对您而言更易读的。.methodprivatehidebysiginstanceboolCase1()cilmanaged{

c# - 如果在第一个 `else` 之后有一个 `return` ,这对性能有影响吗?

我现在看到了两种不同的方法来制作bool返回方法:boolCase1(){if(A)returntrue;elsereturnfalse;}boolCase2(){if(A)returntrue;returnfalse;}哪个更快?不写else只是为了节省一行,使其更清晰,还是可以忽略不计的性能提升是否有意义? 最佳答案 没有。即使我们查看它们的IL代码,它们也具有相同的IL代码,因此它们之间没有性能差异。使用对您而言更易读的。.methodprivatehidebysiginstanceboolCase1()cilmanaged{