草庐IT

itemid_ref

全部标签

c# - int ref 参数是否被装箱?

假设我有以下代码:voidMain(){inta=5;f1(refa);}publicvoidf1(refinta){if(a>7)return;a++;f1(refa);Console.WriteLine(a);}输出是:888即当堆栈展开时,ref参数的值将保持不变。这是否意味着将ref关键字添加到int参数会导致它被装箱?在递归调用期间实际堆栈看起来如何? 最佳答案 通过引用传递值类型会导致传递其在堆栈上的位置,而不是值本身。它与装箱和拆箱无关。这使得思考堆栈在递归调用期间的外观变得相当容易,因为每个调用都指向堆栈上的“相同”

c# - 为什么按 ref 返回对集合元素不起作用?

下面引用返回的例子来自What’sNewinC#7.0:publicrefintFind(intnumber,int[]numbers){for(inti=0;i编译没有任何问题(正如您所期望的那样,因为它是从Microsoft博客复制的)。我写过这个:privatestaticrefintGetReference(stringsearchTerm){varpasswords=newDictionary{{"password",1},{"123456",2},{"12345678",3},{"1234",4},{"qwerty",5},{"12345",6},{"dragon",7}}

c# - 为什么按 ref 返回对集合元素不起作用?

下面引用返回的例子来自What’sNewinC#7.0:publicrefintFind(intnumber,int[]numbers){for(inti=0;i编译没有任何问题(正如您所期望的那样,因为它是从Microsoft博客复制的)。我写过这个:privatestaticrefintGetReference(stringsearchTerm){varpasswords=newDictionary{{"password",1},{"123456",2},{"12345678",3},{"1234",4},{"qwerty",5},{"12345",6},{"dragon",7}}

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# 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.