我有类似于以下代码的东西......
void function(int x)
{
// complicated operation on x
blah
blah
}
Run Code Online (Sandbox Code Playgroud)
这一切看起来都很好,除非x恰好是一个特定的值,比如"273".但x为273是一种罕见的事件,99.999%的时间是其他值.现在我希望观察使用x = 273调用此函数时的事件,所以我想插入一个仅受x命中的断点就是该值.也许我可以这样做:
void function(int x)
{
if (x == 273)
{
// put breakpoint on this line.
}
// complicated operation on x
blah
blah
}
Run Code Online (Sandbox Code Playgroud)
问题是,编译器可能会优化掉这个"if"语句,因为它没有做任何事情.所以我的问题是我应该在"if"语句中放置什么以确保它被编译成某种东西......或者我应该以某种完全不同的方式跟踪x == 273的情况.
为什么这个锁定测试不起作用?它正在抛出一个异常的控制台.Write该集合被修改了....
static List<string> staticVar = new List<string>();
static void Main(string[] args)
{
Action<IEnumerable<int>> assyncMethod = enumerator =>
{
lock (staticVar)
foreach (int item in enumerator)
staticVar.Add(item.ToString());
};
assyncMethod.BeginInvoke(Enumerable.Range(0, 500000), null, null);
Thread.Sleep(100);
Console.Write(staticVar.Count());
foreach (string item in staticVar)
{
}
}
Run Code Online (Sandbox Code Playgroud) 我试图在linq中编写查询
Select UserId, UserNumber
FROM User
where UserNumber in
(Select UserNumber
FROM User
group by UserNumber
having Count(UserId) = 1)
Run Code Online (Sandbox Code Playgroud)
阿比提示?
我听说Visual Studio 2010具有"多显示器支持".但是现在我正在使用它,我认为VS2008没有任何区别.
从一台显示器切换到两台显示器时,我仍需要调整所有窗口的大小.
是否有某些个人资料或设置我缺少?例如,Delphi允许您保存记录特定窗口所在位置的桌面配置文件.从单显示器切换到双显示器就像选择不同的桌面配置文件一样简单.
在VS2010中有类似的东西我错过了吗?
我最近看到了一个截屏视频,真正让我感兴趣的是调试器输出窗口中的消息以不同的颜色显示(警告,异常等的颜色不同).幸运的是我再也找不到这个截屏视频了.
有谁知道这是VS2010的新功能还是2008年的一部分,只需要打开?
实际上我不知道他们是否应该工作
我在C#中创建了一个库,人们告诉我,我的一种方法在VB.NET中不能作为扩展名 http://valueinjecter.codeplex.com/Thread/View.aspx?ThreadId=227498
这是方法:
public static PropertyDescriptorCollection GetProps(this object o)
{
return GetProps(o.GetType());
}
Run Code Online (Sandbox Code Playgroud) 我在visual studio 2010 express中找不到Quick Watch.我们是否只有手表选项,而不是快速版的快速观看?
我有一个共享项目,我存储了所有自定义的EditTemplates和DisplayTemplates.这是一个常规的C#类库项目,其视图都标记为嵌入式资源.该项目的目标框架是".Net Framework 4".
在/ Views /文件夹中我已经包含了这个web.config文件,因此在使用.aspx和.ascx文件时我获得了MVC 2 intellisense:
<?xml version="1.0"?>
<configuration>
<system.web>
<httpHandlers>
<add path="*" verb="*" type="System.Web.HttpNotFoundHandler"/>
</httpHandlers>
<pages
validateRequest="false"
pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter, System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
pageBaseType="System.Web.Mvc.ViewPage, System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
userControlBaseType="System.Web.Mvc.ViewUserControl, System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<controls>
<add assembly="System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" namespace="System.Web.Mvc" tagPrefix="mvc" />
</controls>
</pages>
</system.web>
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<handlers>
<remove name="BlockViewHandler"/>
<add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
</handlers>
</system.webServer>
</configuration>
Run Code Online (Sandbox Code Playgroud)
通常我对这个设置没有问题,但是一旦我在编译视图时遇到错误:
错误3无法使用功能"匿名类型",因为它不是ISO-2 C#语言规范的一部分
对于看起来像这样的模板:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %>
<%@ Import Namespace="System.Web.Mvc.Html" %>
<%
string displayText …Run Code Online (Sandbox Code Playgroud) 我有一个非常简单的扩展方法,它与IComparable实例有关:
public static bool Between<T>(this T comparable, T min, T max) where T : IComparable<T>
{
return comparable.CompareTo(min) >= 0 && comparable.CompareTo(max) <= 0;
}
Run Code Online (Sandbox Code Playgroud)
哪种方法可以测试这种方法?我试过模拟IComparable实例无济于事...我使用NUnit和Moq,但我真的是TDD中的菜鸟.
我已经阅读了SO上提供的解决方案,但到目前为止还没有解决我的问题.我的启动项目是一个非托管的C++项目(我们称之为TestWrapper).目标是让TestWrapper调用托管C++项目,然后调用我的C#项目.这工作正常,我没有运行它的问题.
但是,我的C#代码中出现了异常.由于某种原因,断点不会被击中,实际的调试中断发生在内部ntdll.dll.我试图右键单击C#项目并启用非托管调试,但这不能解决问题.如果有人能指出我的解决方案,我将非常感激.
我要继续并包括项目布局:
TestWrapper (unmanaged C++) -> ManagedWrapper (managed C++) -> MyCSharpProject (C#)
Run Code Online (Sandbox Code Playgroud)
我有一种感觉,它在于调试的配置,但我知道甚至不知道从哪里开始看.