草庐IT

代表匿名内部类的 Android Studio

全部标签

c# - C# 中匿名未附加 block 的值是什么?

在C#中,您可以在不附加到任何其他语句的方法内部创建一个block。publicvoidTestMethod(){{stringx="test";stringy=x;{intz=42;intzz=z;}}}这段代码编译和运行就像main方法中的大括号不存在一样。还要注意block内的block。是否存在这会有值(value)的场景?我还没有找到任何东西,但很想听听其他人的发现。 最佳答案 范围和垃圾收集:当您离开未附加的block时,其中声明的任何变量都会超出范围。这让垃圾收集器可以清理这些对象。RayHayes指出.NET垃圾收集

c# - 共享一个类的离散匿名方法?

我在玩EricLippert的Ref来自here的类(class).我在IL中注意到,看起来两个匿名方法都在使用相同的生成类,即使这意味着该类有一个额外的变量。虽然只使用一个新的类定义似乎有点合理,但令我惊讶的是,只有一个c__DisplayClass2的实例被build。这似乎暗示Ref的两个实例引用相同的c__DisplayClass2那不是说y吗?直到vart1才能收集被收集,这可能比joik之后发生得晚得多返回?毕竟,不能保证某些白痴不会编写直接访问y的函数(直接在IL中)。通过vart1之后joik返回。也许这甚至可以通过反射而不是通过疯狂的IL来完成。sealedclass

c# - 如何创建和访问在 C# 中作为参数传递的匿名类的新实例?

我创建了一个函数,该函数接受SQL命令并生成可用于填充类实例列表的输出。该代码效果很好。我在这里包含了一个没有异常处理的稍微简化的版本,仅供引用-如果您想直接跳转问题,请跳过此代码。不过,如果您在这里有任何建议,我会洗耳恭听。publicListReturnList()whereT:new(){ListfdList=newList();myCommand.CommandText=QueryString;SqlDataReadernwReader=myCommand.ExecuteReader();TypeobjectType=typeof(T);FieldInfo[]typeField

c# - 是否可以在 C# 中使用一组变量/动态字段声明匿名类型?

在C#中,我想弄清楚是否可以声明一个匿名类型,其中的字段直到运行时才知道。例如,如果我有一个键/值对列表,我可以根据该列表的内容声明一个匿名类型吗?我正在处理的具体情况是将参数传递给Dapper,我事先不知道我将拥有多少参数。List>paramList=newList>(){newTuple("key1","value1"),newTuple("key2","value2")...};我想将此List(或等效的Map)转换为匿名类型,我可以将其作为查询参数传递给Dapper。所以理想情况下,如果定义为匿名类型,上面的列表将看起来像这样:new{key1=value1,key2=val

c# - lambda 表达式和匿名方法之间的区别 - C#

这个问题在这里已经有了答案:delegatekeywordvs.lambdanotation(6个答案)关闭9年前。重复:delegatekeywordvs.lambdanotation我了解匿名方法可用于定义委托(delegate)和编写内联函数。使用Lambda表达式与此有什么不同吗?我想我对何时使用什么有点困惑。编辑:此外,似乎要使用匿名或lambda,该类型是否需要扩展方法?

c# - 什么是既可以代表文件又可以代表目录的名称?

我在我的代码中命名了一些变量,我试图避免命名诸如nameOfFileOrFolder或pathOfFileOrFolder之类的东西。代表他们两者的好名字或方式是什么?有吗?例如:女孩或男孩都可以用人这个词来表示。cat或dog都可以用pet或animal或ma​​mmal.文件或目录都可以用....这个词来表示。 最佳答案 SoftwareEngineeringStackExchange对此有很好的讨论:Wordforthesupersetoffilesandfolders-StackExchange您可以将其称为FileSyst

c# - MVC 中带有动态匿名对象的 RuntimeBinderException

代码我有一个MVC项目,其中的部分页面看起来有点像这样:"%>"data-window-url="/SomeUrl/Partial//">它所做的是打开另一个部分(在Model.TargetTab中命名的部分)如果它是当前可见的选项卡,则使用Model.Model,否则只呈现一个空的div(在需要时使用jQuery加载)。它的名字是这样的:这曾经有效。然后我更改了进入Model的值,它停止工作了。我改回来了,还是不行。需要明确的是,hgstatus目前不显示任何这些文件。异常Microsoft.CSharp.RuntimeBinder.RuntimeBinderException:'o

c# - 将 ExpandoObject 转换为匿名类型

我可以将ExpandoObject转换为匿名类型吗?varanoObj=new{name="testName",email="testEmail"};dynamicexpandoObj=newSystem.Dynamic.ExpandoObject();//HereI'mpopulatingtheexpandoObjwithsamepropertynames/typesinanonymoustype(anoObj)//Now,howtoconvertthisExpandoObjecttoanonymoustype?varnewObj=(typeof(anoObj)expandoObj)

c# - 事件处理程序和匿名委托(delegate)/Lambda 表达式

我希望通过使用匿名委托(delegate)和lambda表达式来为C#中的事件处理程序创建方法来解决一些问题,至少对我自己而言。假设我们有一个添加匿名委托(delegate)或lambda表达式的事件(对于可以使用较新版本.NET的幸运人群)。SomeClass.SomeEvent+=delegate(objecto,EventArge){/*dosomething*/};我读到,过去的人们已经忘记了仍然有处理程序阻止类被垃圾收集的事件。如果不在类中将SomeEvent设置为null,将如何删除添加的处理程序。以下不是一个全新的处理程序吗?SomeClass.SomeEvent-=de

c# - VB.NET linq group by 匿名类型不能按预期工作

我正在研究LINQPad附带的一些linq示例。在“C#3.0inaNutshell”文件夹中的Chater9-Grouping下,有一个名为“GroupingbyMultipleKeys”的示例查询。它包含以下查询:fromninnew[]{"Tom","Dick","Harry","Mary","Jay"}.AsQueryable()groupnbynew{FirstLetter=n[0],Length=n.Length}我将字符串“Jon”添加到数组的末尾以获得实际分组,并得出以下结果:这正是我所期待的。然后,在LINQPad中,我转到同一查询的VB.NET版本:'Manuall