小编Ele*_*ios的帖子

测量代码执行时间

我想知道程序/功能/订单需要多长时间才能完成测试.

这是我做的,但我的方法是错误的'因为如果秒的差异为0则无法返回经过的毫秒:

请注意,睡眠值为500毫秒,因此经过的秒数为0,则无法返回毫秒数.

    Dim Execution_Start As System.DateTime = System.DateTime.Now
    Threading.Thread.Sleep(500)

    Dim Execution_End As System.DateTime = System.DateTime.Now
    MsgBox(String.Format("H:{0} M:{1} S:{2} MS:{3}", _
    DateDiff(DateInterval.Hour, Execution_Start, Execution_End), _
    DateDiff(DateInterval.Minute, Execution_Start, Execution_End), _
    DateDiff(DateInterval.Second, Execution_Start, Execution_End), _
    DateDiff(DateInterval.Second, Execution_Start, Execution_End) * 60))
Run Code Online (Sandbox Code Playgroud)

有人能告诉我更好的方法吗?也许有一个TimeSpan

解决方案:

Dim Execution_Start As New Stopwatch
Execution_Start.Start()

Threading.Thread.Sleep(500)

MessageBox.Show("H:" & Execution_Start.Elapsed.Hours & vbNewLine & _
       "M:" & Execution_Start.Elapsed.Minutes & vbNewLine & _
       "S:" & Execution_Start.Elapsed.Seconds & vbNewLine & _
       "MS:" & Execution_Start.Elapsed.Milliseconds & vbNewLine, _
       "Code execution time", MessageBoxButtons.OK, …
Run Code Online (Sandbox Code Playgroud)

.net c# vb.net datetime timespan

104
推荐指数
6
解决办法
14万
查看次数

在ruby中将字符串转换为十进制数

我需要使用小数.在我的程序中,用户需要输入一个带小数的数字来转换该数字.

问题是:如果我尝试将参数转换为数字,我会得到一个没有小数的整数.

# ARGV[0] is: 44.33

size = ARGV[0]

puts size.to_i
# size is: 44
# :(
Run Code Online (Sandbox Code Playgroud)

ruby numbers decimal

57
推荐指数
3
解决办法
7万
查看次数

多行字符串变量

在.Net(C#和VB.NET)如果我有这样的多行文字:

__   __                 _                       
\ \ / /                | |                      
 \ V /___  _   _ _ __  | |     ___   __ _  ___  
  \ // _ \| | | | '__| | |    / _ \ / _` |/ _ \ 
  | | (_) | |_| | |    | |___| (_) | (_| | (_) |
  \_/\___/ \__,_|_|    \_____/\___/ \__, |\___/ 
                                     __/ |      
                                    |___/       
Run Code Online (Sandbox Code Playgroud)

我可以像这样设置变量吗?

Dim Logo As String = ("
__   __                 _                       
\ \ / /                | | …
Run Code Online (Sandbox Code Playgroud)

.net c# vb.net string

30
推荐指数
4
解决办法
5万
查看次数

指示CodeDomProvider编译器以英语显示错误和警告消息?

我正在使用这些System.CodeDom功能在运行时编译代码,我想知道是否可以指定编译器参数或其他解决方法来显示英语语言中的编译器错误,而不是使用系统的默认语言.

但是,在MSDN文档中,我找不到与显示语言相关的任何内容:

当我想在构建项目时在Visual Studio IDE下以特定语言显示编译器错误我所做的是更改当前文化,然后我尝试在我的应用程序中设置文化,也在我正在编译的文件中设置文化appliation,但首先不会生效,其次我会避免这样的可能的伎俩,因为它可能需要自动代码生成(调用CodeDomProvider编译器时的导入,引用和代码):

Thread.CurrentThread.CurrentCulture = New CultureInfo("en-Us")
Thread.CurrentThread.CurrentUICulture = New CultureInfo("en-Us")
Run Code Online (Sandbox Code Playgroud)

.net c# vb.net csharpcodeprovider vbcodeprovider

25
推荐指数
1
解决办法
643
查看次数

在 Windows 图标缓存中预加载特定文件夹的文件夹图标,在 C# 或 VB.NET 中

我需要提到一个 3rd 方程序,或者更好地说WinThumbsPreloader程序的源代码,它包含用 C# 编写的所有必要代码,用于在 Windows 缩略图缓存中预加载文件的缩略图,如您在此演示中所见:

在此处输入图片说明

问题是我需要预加载的是文件夹的图标,但是IThumbnailCache::GetThumbnail方法不允许传递文件夹项,它将返回错误代码0x8004B200WTS_E_FAILEDEXTRACTION):

Shell 项不支持缩略图提取。例如,.exe 或 .lnk 项目。

换句话说,我需要做WinThumbsPreloader程序所做的同样的事情,但是文件夹图标而不是文件夹/图标缩略图。

所以,我的意思是我有一个文件夹,里面有一个desktop.ini文件,你可能知道它可以用来替换存储该desktop.ini文件的文件夹的默认图标/缩略图。desktop.ini文件内容示例:

[.ShellClassInfo]
IconResource=FolderPreview.ico,0
Run Code Online (Sandbox Code Playgroud)

我需要预加载文件夹的原因是为了避免每次浏览文件夹时生成图标缓存。

为了消除疑虑,我想避免这种缓慢的文件夹图标生成:

前

相反,获得这种改进的速度:

后

我的问题是:在 C# 或 VB.NET 中,如何以编程方式预加载 Windows 图标缓存中特定文件夹的图标?。

似乎IThumbnailCache接口不是解决这个问题的方法......


更新 1

按照@Jimi 的评论建议,这是我正在尝试的方法:

Public Shared Sub PreloadInIconCache(path As String, 
                                     Optional iconSize As Integer = 256)

    Dim iIdIShellItem As New Guid("43826d1e-e718-42ee-bc55-a1e261c37bfe")
    Dim shellItem As IShellItem = Nothing
    Dim shellItemIF As IShellItemImageFactory
    Dim iconFlags As …
Run Code Online (Sandbox Code Playgroud)

.net c# vb.net winapi icons

19
推荐指数
1
解决办法
1012
查看次数

获取Enum值的名称

我正在尝试创建一个函数,我们可以获得EnumValue的Namevalue

例如:

Get_Enum_ValueName(DayOfWeek, 0)
Run Code Online (Sandbox Code Playgroud)

......这将返回" 星期天 ".

但我的代码不起作用,它说类型没有定义:

Private Function Get_Enum_ValueName(Of T)(ByVal EnumName As T, ByVal EnumValue As Integer) As String
    Return DirectCast([Enum].Parse(GetType(EnumName), EnumValue ), EnumName).ToString
End Function
Run Code Online (Sandbox Code Playgroud)

.net vb.net enums visual-studio

18
推荐指数
3
解决办法
3万
查看次数

确定TextFile编码?

我需要确定文本文件的内容是否等于这些文本编码之一:

System.Text.Encoding.ASCII
System.Text.Encoding.BigEndianUnicode ' UTF-L 16
System.Text.Encoding.Default ' ANSI
System.Text.Encoding.Unicode ' UTF16
System.Text.Encoding.UTF32
System.Text.Encoding.UTF7
System.Text.Encoding.UTF8
Run Code Online (Sandbox Code Playgroud)

我不知道如何读取文件的字节标记,我已经看到片段这样做,但只能确定文件是ASCII还是Unicode,因此我需要更通用的东西.

.net vb.net unicode encoding character-encoding

18
推荐指数
1
解决办法
3万
查看次数

如何使用Visual Studio SDK扩展提供Intellisense的信息?

在C#或Vb.Net中,使用Visual Studio 2013 SDK,当显示成员的信息时,如何在Intellisense上添加其他元素?

我的意图是不添加一个完成/建议元素,我想在一个成员显示的信息下面添加自定义附加信息,该成员可以抛出异常,如方法,函数或属性(getter/setter),而不是关键字.

我读了一下Microsoft.VisualStudio.Language.Intellisense命名空间的成员,但我没有对它有任何明确的想法.

在我能得到的帮助下,我的目标是找到开发一个简单扩展的答案,该扩展将为成员添加(记录)异常信息,如下所示:

在此输入图像描述

我想在Visual Studio for C#中恢复这个有用的功能,并为VB.Net添加它,如果成功的话,我会像过去那样使用这个有用的扩展来免费分享它:

我只是评论,因为任何帮助都可以通过这种方式为我们所有人带来回报!


除了我的问题,并且只有另外,如果有人可以开始指导我如何找出检索成员(<exception cref="Exception name">)的Xml文档来执行此操作的方法,或者可能是一种简单的方法,我将非常感激.

编辑:

关于Xml文档,我想到使用Visual Studio 对象浏览器来检查将由Intellisense列出的成员的异常,而不是弄乱Reflection?获取异常信息.一旦我弄清楚如何从SDK自动化对象浏览器,这可能是一种更好,更可行的方法,但我只是评论这个,也许这个问题一旦解决就会成为一个新问题,因为首先我需要解决这一步,我希望如此.

.net c# vb.net visual-studio visual-studio-sdk

18
推荐指数
1
解决办法
1731
查看次数

如何开始使用.NET Framework UndoEngine类?

今天我发现FW 4.5有他们自己的undoredo经理(如果我理解的话)http://msdn.microsoft.com/en-us/library/System.ComponentModel.Design.UndoEngine%28v=vs.110% 29.aspx

好吧,我找不到任何关于如何开始使用这个类只是为了对基于文本的控件进行简单的撤销/重做的示例,我知道其他替代方法可以做出可撤销的事情,但我只是想学习如何使用它.

当我尝试使用构造函数时,它有任何参数要传递,而且Intellisense也没有向我显示System.ComponentModel.Design.UndoEngine该类的任何方法,我真的不知道如何使用它.

有人可能会说明我们有一个例子C#VBNET?(如果可能请提供VBNET文档)

.net c# vb.net undo-redo winforms

16
推荐指数
1
解决办法
2407
查看次数

关闭Visual Studio 2015后,devenv进程在后台继续运行

问题


当我通过按下IDE上的关闭按钮关闭Visual Studio 2015时,devenv.exe进程在3-5分钟之间继续在后台运行,在此之后,它会自动关闭,真的很奇怪.

我发现这个问题是因为我试图使用自动安装扩展DTE(与过去Visual Studio 2013相同,没有任何问题),但是当我调用该方法时,dte.Quit()它不会使Visual Studio 2015关闭,的devenv.exe的意愿保持在背景永远(直到手动过程杀死).


有人可以知道我为什么会遇到这个问题?

有人有同样的问题吗?有人找到了解决问题的方法吗?

这是一个官方的错误?,是否有更新或补丁?

或者在最糟糕的情况下,在新的微软"哲学"之后,它可能是他们的间谍机制之一,即使在最终用户试图关闭IDE时也能继续运行?

研究


我对这样的问题解决方案知之甚少,比如调试第三方应用程序或逆向工程知识,但我做了一些基本的事情:

  • 试图将procmonSysinternals的,但我没有发现任何奇怪的电话.
  • 我还使用了名为WhatIsHangNirsoft应用程序来确定系统中挂起的任何当前应用程序然后显示它的一些调试信息,但是WhatIsHang无法识别devenv.exe的任何挂起,所以至少我知道devenv.exe不是悬挂,似乎只是显然"不活跃"做一些奇怪的事情,而这个过程永远不会自己退出.

环境规格


Windows版本:

Windows Spy 10,即64位的Windows 10 Professional(v10.0.10240),在VMWare WorkStation上运行.

Visual Studio版本:

2015专业版(v14.0.23107.0)

是否安装了第三方IDE扩展或任何其他类型的修改?:

不,这是该产品的全新安装.

.net visual-studio envdte devenv visual-studio-2015

16
推荐指数
1
解决办法
7473
查看次数