Tag: vb.net

LINQ到对象的位置和时间?

在哪些情况下我应该使用LINQ to Objects? 显然,我可以在没有LINQ的情况下做任何事情。 那么在哪些操作中LINQ实际上可以帮助我编写更短和/或更可读的代码? 这个问题引发了这个问题

使用条件断点时,Visual Studio会降低执行速度

我使用For循环如下: for (int i = 0; i < 1000; i++) { int mod = i % 1795; //Do some operations here } 它运行正常,但是当我设置一个断点并将条件应用为mod=150它会减慢执行速度。 为什么会这样? 当我添加这样的条件断点时实际发生了什么?

第一次调用.net webservice很慢

我在我的.net winforms应用程序中调用.net webservice,两者都在框架4.0中。 在程序执行期间,webservice第一次调用方法时,调用大约需要10-12秒。 后续通话需要约1-2秒。 即使重新创建Web引用实例,后续调用仍然是〜1-2秒。 当winforms应用程序重新启动时,第一次呼叫延迟再次发生,但后续呼叫响应。 Web调用的实例是在调用发生之前创建的,并不是延迟的一部分。 正在生成winforms应用程序的XmlSerializers(并据我所知使用,但我不知道如何validation这一点)。 由于Web服务端的首次编译,因此不会发生延迟。 这是一整天都在使用的生产Web服务,其apppool仍保留在内存中。 据我所见,延迟发生在客户端,或者客户端和服务器之间的第一次调用,而不是后续调用。 不知道接下来要检查什么。 有任何想法吗?

删除目录中文件的最快方法是什么? (特定文件扩展名除外)

我看过诸如清空目录的最佳方法之类的问题? 但我需要知道, 除了找到的任何.zip文件之外,删除目录中找到的所有文件的最快方法是什么。 在这里闻到像linq ……还是什么? 通过说最快的方式,我的意思是最快的执行时间。

Windows窗体分隔符控件

在VS2010中哪里可以找到水平分隔符控件,可以在Outlook设置中找到(下面的屏幕截图)? http://sofzh.miximages.com/c%23/outlook+settings.jpg http://www.keithfimreite.com/Images/OutlookSettings3.gif 注意:VB.NET首选,但C#的答案还可以。

即使旧索引和新索引相同,是否可以触发ComboBox SelectedIndex Changed Event?

我有一个场景是我需要触发winform的combox的SelectedIndexChanged事件,即使旧的和新的索引是相同的..我不能使用SelectionChangeCommited因为值是以编程方式设置的..它不会被解雇。 即使旧的和相同的索引相同,是否有机会强制’SelectedIndexChanged’开火?

为什么C#和VB.NET以不同的方式隐式编组char *?

所以我有一个用C ++编写的函数,看起来像这样…… extern “C” __declspec(dllexport) int __stdcall SomeFunction(char *theData) { // stuff } …我在我当前的项目中使用它(用C#编写)。 还有其他项目使用VB编写的这个函数,如下所示: Public Declare Function SomeFunction Lib “MyDLL.dll” _ Alias “_SomeFunction@4” (ByVal theData As String) As Integer 所以我尝试在C#中编写一个等价物,但是发现使用字符串类型对我来说实际上并不起作用 – 字符串会返回我传递给它的相同数据。 我尝试使用”ref string”代替通过引用传递字符串,我得到了内存访问冲突。 在做了一些挖掘之后,我发现这是C#中正确的实现: [DllImport(“MyDLL.dll”, EntryPoint = “_SomeFunction@4”)] public static extern int SomeFunction(StringBuilder theData); 现在我知道VB.NET和C#是完全不同的,但我想我总是认为字符串是字符串。 如果一种语言可以隐式地将char*送到String ,为什么不能另一种语言,需要一个完全不同的类? (为清晰起见编辑了标题)

如何防止System.Timers.Timer排队在线程池上执行?

标准System.Timers.Timer行为存在问题。 计时器以某个间隔提升Elapsed事件。 但是当Elapsed事件处理程序内的执行时间超过计时器间隔时,线程池开始排队事件处理。 这是我的问题。 这是因为使用我的Elapsed事件处理程序,我从数据库中获取一些数据并使用它做一些事情,最后将结果保存回数据库。 但是数据处理应该只提供一次。 那么,有没有办法防止排队System.Timers.Timer的elapse事件。 作为此问题的插图,您可以考虑下一个测试程序: public class EntryPoint { private static void TimeProc(object state, ElapsedEventArgs e) { Console.WriteLine(“Current time {0} on the thread {1}”, DateTime.Now, Thread.CurrentThread.ManagedThreadId); Thread.Sleep(20000); } static void Main(string[] args) { Console.WriteLine(“Press for finishing\n\n”); ThreadPool.SetMaxThreads(10, 10); System.Timers.Timer MyTimer = new System.Timers.Timer(1000); MyTimer.Elapsed += new ElapsedEventHandler(TimeProc); MyTimer.Start(); Console.ReadLine(); MyTimer.Stop(); } } […]

C#的最佳选择“On Error Resume Next”是什么?

如果我为我的C#代码添加空catch块,它是否等同于VB.NET的“On Error Resume Next”语句。 try { C# code; } catch(exception) { } 我问这个的原因是因为我必须将VB.NET代码转换为C#,旧代码有~200“On Error Resume Next”语句,尽管我在新代码中使用了正确的try {} catch {} ,但有更好的选择吗?

是否有一个VB.NET表达式,* always *产生null?

我们都知道VB的Nothing与C#的null相似,但不相同。 (如果您不知道,请先查看此答案 。) 出于好奇,我想知道以下内容: 是否有一个总是产生null的VB.NET表达式? 举一个具体的例子,采取以下声明: Dim o As Object = If(myBool, 5, …) 有可能用某些东西替换…当myBool为真时o为5而myBool为假时为Nothing/null ? 显而易见的解决方案无效: Nothing (见上面链接答案的问题), DirectCast(Nothing, Object) (使用Option Strict On抛出编译时错误), DirectCast(Nothing, Integer?)适用于此示例,但一般不起作用(如果在此示例中将5.0替换为5.0 ,则需要修改强制转换)。 明显的解决方法(不算作答案): 声明一个Object变量或字段,将其设置为Nothing并将其用于… , 定义一个总是返回Nothing的方法或属性, DirectCast第二个参数( 5 )到Object 。 注意:上面的例子只是一个例子。 问题本身是用粗体写的。