C#矛盾和有争议的结构
这篇文章的目的是收集所有整洁而棘手的c#构造和日常不会发生的问题 下面是: 第1期(这是我自己发现的) 屏幕上会打印什么C#矛盾和有争议的结构,c#,.net,C#,.net,这篇文章的目的是收集所有整洁而棘手的c#构造和日常不会发生的问题 下面是: 第1期(这是我自己发现的) 屏幕上会打印什么 class Program { private static String Function(out String str) { str = "Hello "; return "world!"; } private static void Main(string[] args) { Str
class Program
{
private static String Function(out String str)
{
str = "Hello ";
return "world!";
}
private static void Main(string[] args)
{
String x = Function(out x);
Console.WriteLine(x);
}
}
有什么想法吗?:)
第2期创建匿名类型的泛型集合(如列表或词典)是否可行
var Customer = new { FirstName = "John", LastName = "Doe" };
var customerList = new List<????>();
var Customer=new{FirstName=“John”,LastName=“Doe”};
var customerList=新列表();
考虑一下这个发现:
静态列表CreateList(参数T[]值)
{
返回新列表(值);
}
静态void Main(字符串[]参数)
{
var x=new{A=“Hello”,B=“world!”;
var list=CreateList(x);
添加(新的{A=“你好”,B=“世界!”);
}
分享你的发现。谢谢大家! 对于第一个示例,
x
的值将是方法的返回值,因为方法调用(包括out参数)发生在分配返回值之前
就清单而言,您应该能够做到以下几点:
var list = new[]
{
new { a = 1, b = "hi" },
new { a = 1, b = "hi" }
}.ToList();
虽然我不确定编译器是否会确定这两种匿名类型相等。我有点好奇,当你发现将返回值赋给out参数时会发生什么情况时,你在做什么……因为这个问题没有“答案”,如果您不想关闭它,我建议将其标记为社区wiki。我不会将返回值指定给out参数,返回值与指定给out参数的返回值不同。我不想将其关闭,我想收集C#的有趣方面language@Lu4用迈克尔·艾恩赛德的话说:你知道该怎么做!是的,它会,否则你会得到不同类型的列表:)我的意思是,它可能不会编译。类型统一将(至少在这种情况下)确保代码编译。
var list = new[]
{
new { a = 1, b = "hi" },
new { a = 1, b = "hi" }
}.ToList();