当foreach通过一个通用的清单荷兰国际集团我经常想做些不同的事在列表中的第一个元素:
List<object> objs = new List<object>
{
new Object(),
new Object(),
new Object(),
new Object()
};
foreach (object o in objs)
{
if (o == objs.First())
{
System.Diagnostics.Debug.WriteLine("First object - do something special");
}
else
{
System.Diagnostics.Debug.WriteLine("object Do something else");
}
}
Run Code Online (Sandbox Code Playgroud)
这将输出:
First object - do something special
object Do something else
object Do something else
object Do something else
这一切都很好,花花公子.
但是,如果我的通用列表是值类型,则此方法将失败.
List<int> ints = new List<int> { 0, 0, 0, 0 };
foreach (int i in …Run Code Online (Sandbox Code Playgroud) 警告1元素'system.webServer'具有无效的子元素'rewrite'.可能的元素列表:'asp,caching,cgi,defaultDocument,directoryBrowse,globalModules,handlers,httpCompression,httpErrors,httpLogging,httpProtocol,httpRedirect,httpTracing,isapiFilters,modules,odbcLogging,security,serverRuntime,serverSideInclude,staticContent,tracing,urlCompression ,验证,管理'.D:\ PROJEKTI\FoodOrder\FoodOrder\Web.config 185 4 FoodOrder
码:
system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<modules runAllManagedModulesForAllRequests="true">
<remove name="ScriptModule" />
<add name="ScriptModule" preCondition="managedHandler" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
</modules>
<handlers>
<remove name="WebServiceHandlerFactory-Integrated" />
<remove name="ScriptHandlerFactory" />
<remove name="ScriptHandlerFactoryAppServices" />
<remove name="ScriptResource" />
<add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
</handlers>
<rewrite>
<rewriteMaps>
<rewriteMap name="StaticRewrites">
<!--<add key="/Default.aspx" value="/Default.aspx" …Run Code Online (Sandbox Code Playgroud) 我正在使用Javascript构建一个相当大的应用程序.它是一个可以更改不同视图的单个页面.所有视图都有自己的变量,事件,监听器,元素等.
在处理大型集合和多个事件时,有时可以很好地了解页面上发生了什么.
我知道所有浏览器都有开发人员工具,但有时很难点击所有元素等等.我找不到一些选项.
我感兴趣的一件事是知道当前在页面上收听了多少事件.通过这种方式,我可以确认我没有创建僵尸.
如果溶剂是开发人员工具,请告诉我在哪里查看和做什么.最重要的是,选择哪种浏览器.
我正在使用WiX创建安装程序,并且为了从命令行卸载我的应用程序(使用MsiExec.exe /X{...}),我需要知道我的.msi文件的ProductCode.
当我安装我的应用程序时,我可以看到ProductCode安装日志文件中列出了该应用程序.但是,显示的GUID在我的WiX文件中没有任何功能.它似乎也在我的安装程序的构建之间发生变化.
我可以ProductCode在我的WiX .wsx文件中指定某处吗?如果是的话,在哪里?
当我查看SVN日志时,我真的希望我能看到标记告诉我何时完成发布.我在其他版本控制系统中看到过这种情况,例如PVCS和Perforce.
这可以在SVN中完成吗?我做了一些研究,到目前为止看起来这种东西不受支持.
我们不希望将每个版本的源复制到另一个文件夹.这会导致开发人员计算机上出现大量不必要的文件重复, 并且只能记录每个版本的修订版本号.我可以使用文本文件来做到这一点!
我的目标是有一个单独的视图向我展示我的发行版的年表,在其中我可以看到每个发行版之间发生的所有代码更改.这样就可以更轻松地编译发行说明.
(这本质上是一个与语言无关的问题,但在我的情况下,我使用的是ASP.NET 3.5)
我正在使用标准的ASP.NET 登录控件,并希望实现以下失败的登录尝试限制逻辑.
OnLoginError事件并在会话中维护失败的登录尝试次数这听起来像是一种明智的做法吗?我错过了一种可以绕过这种检查的明显方法吗?
注意:ASP.NET Session使用cookie与用户的浏览器相关联
这适用于仅在英国和印度使用的管理站点
这是一个冗长的问题,所以请耐心等待.
我需要在一组字符串和每个字符串的相应泛型方法调用之间创建一个映射.但是我遇到了一个编译问题,向下解释.
在我的场景中,我正在使用a Dictionary<>,但问题同样存在于a List<>.为简单起见,我List<>在下面的示例中使用了a .
考虑这三个类:
public abstract class MyBase { /* body omitted */ }
public class MyDerived1 : MyBase { /* body omitted */ }
public class MyDerived2 : MyBase { /* body omitted */ }
Run Code Online (Sandbox Code Playgroud)
还有一些其他类的方法:
public class Test
{
public T GetT<T>() where T : MyBase { /* body omitted */ }
}
Run Code Online (Sandbox Code Playgroud)
在另一个课程中,我可以声明List<Func<MyBase>>如下:
public class SomeClass
{
public void SomeFunc()
{
var test = new Test();
var list1 …Run Code Online (Sandbox Code Playgroud) 当代码根据当前日期处理日期时,测试应涵盖边缘情况,例如闰年以及更频繁的月份和年份边界.
在我们的代码中,我们总是在我们的类中深入了解当前日期DateTime.Now(在我们的例子中是.NET).
你怎么能对这些代码进行单元测试?
这是依赖注入变得非常有用的地方吗?
这是暂时的,但显然下一个版本的Typemock将允许伪造 DateTime.Now
https://blog.typemock.com/2009/05/mockingfaking-datetimenow-in-unit-tests.html
language-agnostic datetime unit-testing dependency-injection
我的团队最近开始使用Lance Hunt的C#编码标准文档作为巩固我们的编码标准的起点.
有一个项目,我们只是不明白的意义,这里的任何人都可以阐明它吗?
该项目是第77号:
在使用之前始终验证枚举变量或参数值.它们可以包含底层Enum类型(默认int)支持的任何值.
例:
Run Code Online (Sandbox Code Playgroud)public void Test(BookCategory cat) { if (Enum.IsDefined(typeof(BookCategory), cat)) {…} }
我最近将我的网站从ASP.NET MVC3(Razor)升级到MVC4(Razor2),并且在这样做时发现了Razor视图引擎中的一个重大变化.
场景(大大简化)如下所示.
@model IEnumerable<string>
@{ Layout = null; }
<!DOCTYPE html>
<html>
<body>
<div>
@foreach (var x in Model)
{
@string.Format("Foo bar: {0}", x) // Errors in MVC4/Razor2
}
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
这在MVC3/Razor中工作正常,但是在MVC4/Razor2中,该string.Format行会导致以下错误:
"@"字符后面的意外"字符串"关键字.进入代码后,您不需要使用"@"作为"string"之类的结构前缀.
如果删除@,则视图引擎会要求您string.Format使用分号终止该行.然而,ReSharper然后警告(正确地):
不使用纯方法的返回值.
我发现的两个修复是要么使用<text>:
<text>@string.Format("The value {0}", x)</text>
Run Code Online (Sandbox Code Playgroud)
或者使用以下更好奇的方法@:@:
@:@string.Format("The value {0}", x)
Run Code Online (Sandbox Code Playgroud)
这是Razor视图引擎中已知且有记录的变化吗?
c# ×3
.net ×2
.net-4.0 ×1
asp.net ×1
coding-style ×1
datetime ×1
func ×1
generics ×1
javascript ×1
login ×1
razor ×1
razor-2 ×1
security ×1
svn ×1
throttling ×1
unit-testing ×1
wix ×1