Tag: C#的

memset()或值初始化零结构?

在Win32 API编程中,通常使用具有多个字段的C struct 。 通常只有其中的一些有意义的价值,所有其他的都必须被清除。 这可以通过两种方式来实现: STRUCT theStruct; memset( &theStruct, 0, sizeof( STRUCT ) ); 要么 STRUCT theStruct = {}; 第二个变种看起来更清洁 – 这是一个单线,它没有任何参数,可能错误input,导致错误被种植。 与第一个变体相比,它有什么缺点吗? 使用哪个变体,为什么?

iOS:使用设备修饰符来加载xib文件?

您可以使用设备修饰符(即〜ipad)在Info.plist中提供特定于设备的密钥,并指定特定于设备的启动图像(iPhone的Default.png和iPad的Default〜ipad.png)例)。 苹果文档中特别提到了这两件事,但是他们并不认为这可以用于任何其他types的文件。 我发现(非常偶然),这通过initWithNibName:bundle:来加载.xib文件。 所以例如,我可以有MyView.xib和MyView〜ipad.xib,并且这个代码: MyViewController *viewController = [[MyViewController alloc] initWithNibName:@"MyView" bundle:nil]; …将在iPad上完全加载MyView〜ipad.xib,在其他设备上加载MyView.xib。 所以,1)这是logging在什么地方? 我当然找不到任何苹果文档。 这肯定比检查UI_USER_INTERFACE_IDIOM()和硬编码两个不同的nib名称更加容易,但是如果没有logging,我还是不要相信它。 而且,2)有没有人知道这个版本的iOS开始工作? 我只在4.2版本中试过,而且在那里工作。 一般的设备修改器(即使是上面列出的文档)都是4.0。

.NET的 – WindowStyle =隐藏与CreateNoWindow = true?

当我开始一个新的过程时,如果我使用这个过程,会有什么不同? WindowStyle = hidden 或者 CreateNoWindow = true ProcessStartInfo类的属性?

C ++双地址运算符? (&&)

我正在阅读STL源代码,我不知道什么&&地址运营商应该做的。 这是一个来自stl_vector.h的代码示例: vector& operator=(vector&& __x) // <– Note double ampersands here { // NB: DR 675. this->clear(); this->swap(__x); return *this; } “地址地址”是否有意义? 为什么它有两个地址运算符而不是一个?

为什么我应该更喜欢单个“等待Task.WhenAll”多个等待?

如果我不关心任务完成的顺序,只需要它们全部完成,我还应该使用await Task.WhenAll而不是多个await ? 例如DoWord2是DoWord2的首选方法(为什么?): using System; using System.Threading.Tasks; namespace ConsoleApp { class Program { static async Task<string> DoTaskAsync(string name, int timeout) { var start = DateTime.Now; Console.WriteLine("Enter {0}, {1}", name, timeout); await Task.Delay(timeout); Console.WriteLine("Exit {0}, {1}", name, (DateTime.Now – start).TotalMilliseconds); return name; } static async Task DoWork1() { var t1 = DoTaskAsync("t1.1", 3000); var t2 […]

发送文件到回收站

目前我正在使用以下function file.Delete(); 但是我怎样才能使用这个函数发送文件到回收站,而不是直接删除呢?

使用ASP.NET MVC数据types属性进行电子邮件地址validation

我在validation电子邮件时遇到了一些问题。 在我的模型中: [Required(ErrorMessage = "Field can't be empty")] [DataType(DataType.EmailAddress, ErrorMessage = "E-mail is not valid")] public string ReceiverMail { get; set; } 在我看来: <script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script> <script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script> @Html.TextBoxFor(m => m.ReceiverMail, new { @placeholder="E-mail"}) <br /> @Html.ValidationMessageFor(m => m.ReceiverMail) 现在,当您将字段留空时,正确显示“字段不能为空”。 但是,当你填写一个无效的电子邮件地址,如“fwenrjfw”,那么表格不会说“电子邮件无效”。 我怎样才能得到表单validationinput为电子邮件地址? 我正在寻找一些帮助。

如何将Windows窗体单选button分组?

如何将Windows窗体应用程序中的单选button(很像ASP.NET的单选button!)分组? 所以我可以切换从选项中select的每个案例。

处理多种消息types的devise模式

我已经把GOF坐在了我的桌子上,我知道必须有某种devise模式来解决我遇到的问题,但是我无法解决这个问题。 为了简单起见,我改变了我使用的一些接口的名字。 所以这里的问题,在电线的一侧,我有多个服务器发送不同types的消息。 另一方面,我有一个客户端,需要能够处理所有不同types的消息。 所有消息实现相同的通用接口IMessage。 我的问题是,当客户端得到一个新的IMessage,它是如何知道它收到的IMessagetypes? 我想我可以做下面的事情,但这只是感觉糟糕。 TradeMessage tMessage = newMessage as TradeMessage; if (tMessage != null) { ProcessTradeMessage(tMessage); } OrderMessage oMessage = newMessage as OrderMessage; if (oMessage != null) { ProcessOrderMessage(oMessage); } 第二个想法是将一个属性添加到名为MessageTypeID的IMessage中,但是这需要我写下如下内容,这也是FEEL可怕的。 TradeMessage tMessage = new TradeMessage(); if (newMessage.MessageTypeID == tMessage.MessageTypeID) { tMessage = newMessage as TradeMessage; ProcessTradeMessage(tMessage); } OrderMessage oMessage = new […]

C#中用于电子邮件validation的最佳正则expression式

我已经看到了大量用于不同编程语言的正则expression式,这些语言都旨在validation电子邮件地址。 我看过很多评论,说这些expression式在某些情况下不起作用,而且要么太严格,要么过于宽容。 我正在寻找的是一个正则expression式,我可以在我的C#代码中使用,这是明确的。 我发现的最好的事情是这个 ^([\w\.\-]+)@([\w\-]+)((\.(\w){2,3})+)$ 有什么更好的吗?