草庐IT

默认动作

全部标签

c# - 使用默认值初始化队列或堆栈?

您可以使用预置值初始化列表:ListL1=newList{1,2,3};Queue是否有与上述等价的东西?我的想法是:QueueQ1=newQueue{1,2,3};这是行不通的。有什么解决方法吗?是QueueQ1=newQueue();Q1.Enqueue(1);Q1.Enqueue(2);Q1.Enqueue(3);唯一有效的解决方案? 最佳答案 使用构造函数QueueConstructor(IEnumerable)QueueQ1=newQueue(new[]{1,2,3});或者Listlist=newList{1,2,3};

C# 默认参数

对于某些人来说,这可能是一个非常简单的答案。我有一个带有可选参数的方法;publicstaticEmailFrom(stringemailAddress,stringname=""){varemail=newEmail();email.Message.From=newMailAddress(emailAddress,name);returnemail;}现在,我必须以.Net3.5为目标,据我了解,OptionalParameters是.Net4的一部分。但是,我的项目构建完成后,我仔细检查了Properties-Application声明3.5为目标框架的页面。然后我在MSDN上找到

c# - Linq .SingleOrDefault - 如何为自定义类设置默认值?

我回答了一些问题并在谷歌上搜索了一下,但我找不到答案(这让我很满意)。基本上,我理解SingleOrDefault返回null或0(取决于类型)。但是我怎样才能让它返回其他东西呢?returnmyChannels.All.Where(_Channel=>_Channel.Guid==this.ParentChannelGuid).SingleOrDefault(_SPECIFICCHANNEL);所以,我希望返回_SPECIFICCHANNEL以防它不是单个的..可以吗? 最佳答案 你必须做一个扩展方法:publicstaticTS

c# - 如何用不同的默认值初始化多维数组

我正在尝试用-1初始化二维整数值数组。当我创建一个新数组时,它会自动填充为0。我知道我可以用2个循环来完成它,但我想在构建数组时应该有一些方法可以做到这一点(这样我就不必经历两次),所以提供的不是0值将被插入。可能吗?如果不是在数组的初始构建期间,是否有其他时间或代码节省方式,或者我是否坚持使用2for循环? 最佳答案 试试这样:int[,]array2D=newint[,]{{-1},{-1},{-1},{-1}};或维度int[,]array2D=newint[4,2]{{-1,-1},{-1,-1},{-1,-1},{-1,-

C#类构造函数默认值问题

我有以下类(class):publicclassTopic{publicstringTopic{get;set;}publicstringDescription{get;set;}publicintCount{get;set;}}我希望在使用以下内容创建类时将计数始终设置为零:varabc=newTopic{Topic="test1",Description="description1"}我对构造函数有点困惑。这是否可能,或者我是否需要在创建abc时指定主题、描述和计数? 最佳答案 int的默认值为0。所有值类型都有默认值,因为它们

c# - 默认参数和泛型的方法解析问题

使用.NET4,我对编译器无法解析下面示例中的第一个方法调用感到困惑。usingSystem;namespaceMethodResolutionTest{classProgram{staticvoidMain(string[]args){NonGenericfoo=null;//ambiguousfoo.Ext1(x=>newNonGeneric());//resolvestofirstExt1foo.Ext1(x=>newNonGeneric(),1);//resolvestofirstExt2foo.Ext2(x=>newNonGeneric());//resolvestofirs

c# - 具有自定义和默认先决条件的 Clickonce WPF 应用程序

我有一个.Net4WPFClickOnce应用程序,它具有.NETFramework4、VC++2013运行时库和WindowsInstaller4.5作为先决条件。我现在必须添加VC++2010库。我已按照步骤操作here创建自定义先决条件包。在visualstudio中,包显示在我的先决条件列表中。但是,安装程序并未尝试安装VC++2010包。product.xmlpackage.xml我已经将vcredist_x86.exe下载到包目录中,但是我不确定在“为先决条件指定安装位置”下设置什么,因为我现在混合使用自定义和默认的先决条件。如有任何帮助,我们将不胜感激!编辑:我已经记录了

c# - 具有默认值的依赖属性抛出 StackOverflowException

我正在使用WPFSQLConnectionUserControl.每当我将它放在已打开、关闭然后再次打开的选项卡(AvalonDockDocumentTab)上时,我都会抛出StackOverflowException问题。为了更好地适应我的应用程序,我已经弄乱了Jake的基本实现,但它本质上是一样的。我添加了一个禁用数据库选择的属性。我已将控件放入我的应用程序中,如下所示:为了解决这个问题,我对SqlConnectionStringBuilder的代码隐藏进行了一些重构,但这似乎是有问题的代码:publicstaticreadonlyDependencyPropertyConnect

c# - 具有默认值的 XmlSerializer 和 List<T>

我在序列化和反序列化具有List类型成员的类时观察到一个奇怪的行为在构建时填充了默认值。与基于数组的属性不同,类型为List的属性不会在XmlSerializer反序列化时被清空。这是我的代码:publicclassProgram{publicclassConfig{publicConfig(){Test1=newList(){"A","B"};Test2=newString[]{"A","B"};}publicListTest1{get;set;}publicstring[]Test2{get;set;}}publicstaticvoidMain(){XmlSerializerxml

c# - 为什么即使 IsRequired 为真,ConfigurationValidator 也会验证 ConfigurationProperty 的默认值?

假设我有一个如下所示的配置属性。请注意,没有默认值。[ConfigurationProperty("x",IsRequired=true)][StringValidator(MinLength=1)]publicstringX{get{return(string)this["x"];}set{this["x"]=value;}}现在我像这样添加我的部分:我会得到这个错误:Thevaluefortheproperty'x'isnotvalid.Theerroris:Thestringmustbeatleast1characterslong.如果我更改配置属性以包含如下默认值,它会起作用: