草庐IT

const-ref

全部标签

c# - 是否可以在 C# 内置 Action<> 委托(delegate)中使用 ref 类型?

C#有内置委托(delegate)Action和Func.是否可以为此代表使用“ref”类型的参数?例如,这段代码:publicdelegatevoidDTest(refGuida);publiceventDTestETest;将编译。但是如果我使用Action,它不会编译:publiceventActionETest;有什么提示吗? 最佳答案 不,您不能对Action委托(delegate)使用按引用传递。虽然在框架中有作为Type的“通过引用传递的类型”的概念,但就C#而言,它并不是真正意义上的类型。ref是参数的修饰符,不是类

c# - 是否可以在 C# 内置 Action<> 委托(delegate)中使用 ref 类型?

C#有内置委托(delegate)Action和Func.是否可以为此代表使用“ref”类型的参数?例如,这段代码:publicdelegatevoidDTest(refGuida);publiceventDTestETest;将编译。但是如果我使用Action,它不会编译:publiceventActionETest;有什么提示吗? 最佳答案 不,您不能对Action委托(delegate)使用按引用传递。虽然在框架中有作为Type的“通过引用传递的类型”的概念,但就C#而言,它并不是真正意义上的类型。ref是参数的修饰符,不是类

gitee提交代码碰见的报错:error:failed to push some refs to ‘https: //gitee.com/....‘

记录一下我使用gitee碰到的一个问题,我用新的电脑第一次上传提交代码到gitee上,提交的时候叫我配置用户名和邮箱我配置好之后还是上传不了,还是弹一个提示框叫我“先试着拉取再推送”我按照它说的操作了一遍还是不行去gitee上看了一下原来是我没有添加主邮箱,我又添加了邮箱验证了。然后推送结果还是报了这个错误:我又执行了:gitpull--rebaseoriginmaster(拉取远程分支代码同步到本地)执行之后提示我已经是最新的代码了我又执行了之前吃操作:拉取=>提交=>推送,结果还是报了一样的错误,后来发现是我的gitee上的邮箱权限问题,我勾选了"不公开我的邮箱地址"才导致这样的问题,取消

c# - 为什么C#限制了可以声明为const的类型集?

编译器错误CS0283指示只能将基本POD类型(以及字符串,枚举和空引用)声明为const。有人对这种限制的原理有理论吗?例如,能够声明其他类型的const值(例如IntPtr)会很好。我相信const的概念实际上是C#中的语法糖,它只是用文字值替换了名称的任何用法。例如,给定以下声明,任何对Foo的引用都将在编译时替换为“foo”。conststringFoo="foo";这将排除任何可变类型,因此也许他们选择了此限制,而不必在编译时确定给定类型是否可变? 最佳答案 从C#specification,chapter10.4-Con

c# - 为什么C#限制了可以声明为const的类型集?

编译器错误CS0283指示只能将基本POD类型(以及字符串,枚举和空引用)声明为const。有人对这种限制的原理有理论吗?例如,能够声明其他类型的const值(例如IntPtr)会很好。我相信const的概念实际上是C#中的语法糖,它只是用文字值替换了名称的任何用法。例如,给定以下声明,任何对Foo的引用都将在编译时替换为“foo”。conststringFoo="foo";这将排除任何可变类型,因此也许他们选择了此限制,而不必在编译时确定给定类型是否可变? 最佳答案 从C#specification,chapter10.4-Con

c# - 什么时候使用 C# ref 关键字是个好主意?

我在生产代码中看到ref使用的次数越多,我遇到的误用就越多,给我带来的痛苦也就越多。我开始讨厌这个关键字,因为从构建框架的角度来看,它似乎很愚蠢。什么时候向您的代码用户传达可能从他们下面更改对象引用/值的概念是个好主意?相比之下,我喜欢关键字,而且我更喜欢根本不使用关键字的情况,在这两种情况下都是因为您在使用关键字时得到了保证。另一方面,Ref不做任何保证,除非您在传入参数之前必须对其进行初始化,即使它可能没有任何更改。虽然我不是圣人开发者;我确信它具有实际适用的用途。我只想知道它们是什么。 最佳答案 FrameworkDesign

c# - 什么时候使用 C# ref 关键字是个好主意?

我在生产代码中看到ref使用的次数越多,我遇到的误用就越多,给我带来的痛苦也就越多。我开始讨厌这个关键字,因为从构建框架的角度来看,它似乎很愚蠢。什么时候向您的代码用户传达可能从他们下面更改对象引用/值的概念是个好主意?相比之下,我喜欢关键字,而且我更喜欢根本不使用关键字的情况,在这两种情况下都是因为您在使用关键字时得到了保证。另一方面,Ref不做任何保证,除非您在传入参数之前必须对其进行初始化,即使它可能没有任何更改。虽然我不是圣人开发者;我确信它具有实际适用的用途。我只想知道它们是什么。 最佳答案 FrameworkDesign

c# - 行动委托(delegate)< ref T1, T2>

我正在尝试创建一个采用ref参数的静态方法的委托(delegate)。请不要问我为什么要这样做。这都是学习.Net、C#和反射如何工作以及如何对其进行优化的一部分。我的代码是:publicstructDataRow{privatedoublet;staticpublicvoidCram_T(refDataRowdr,doublea_t){dr.t=a_t;}}''''TypemyType=typeof(DataRow);MethodInfomy_Cram_T_Method=myType.GetMethod("Cram_T");varmyCram_T_Delegate=Delegate.

c# - 行动委托(delegate)< ref T1, T2>

我正在尝试创建一个采用ref参数的静态方法的委托(delegate)。请不要问我为什么要这样做。这都是学习.Net、C#和反射如何工作以及如何对其进行优化的一部分。我的代码是:publicstructDataRow{privatedoublet;staticpublicvoidCram_T(refDataRowdr,doublea_t){dr.t=a_t;}}''''TypemyType=typeof(DataRow);MethodInfomy_Cram_T_Method=myType.GetMethod("Cram_T");varmyCram_T_Delegate=Delegate.

c# - C# 中的 private const 和 private readonly 变量之间有区别吗?

在C#中使用privateconst变量或privatestaticreadonly变量有区别吗(除了必须分配const一个编译时表达式)?因为它们都是私有(private)的,所以没有与其他库的链接。那会有什么不同吗?例如,它可以产生性能差异吗?实习字符串?有没有类似的? 最佳答案 好吧,您可以在属性中使用常量,因为它们作为编译时存在。您无法预测静态只读变量的值,因为.cctor可以从配置等初始化它。在使用方面,常量被嵌入到调用代码中。这意味着,如果您重新编译一个库dll来更改一个public常量,但不更改消费者,那么消费者仍将使