我发现编写Web应用程序和WinForm应用程序通常比编写控制台应用程序时更清晰.
清洁工我的意思是什么?事实上,UI(即readline/writeline)与逻辑代码交织在一起变得非常糟糕,事实上它不是事件驱动的,这意味着它很难获得良好的抽象.
我正在考虑这个问题,MVC确实尝试解决网络应用程序的类似问题,所以我的问题是控制台应用程序有什么类似的吗?或任何指南,以更好地设计到控制台应用程序?
在C++中,可以说:
for (int i = 0; i < 100 && !found; i++) {
if (items[i] == "the one I'm looking for")
found = true;
}
Run Code Online (Sandbox Code Playgroud)
所以你不需要使用"break"语句.
在Python中,我想你需要写:
found = False
for item in items:
if item == "the one I'm looking for"
found = True
break
Run Code Online (Sandbox Code Playgroud)
我知道我可以编写一个具有相同代码的生成器,所以我可以隐藏这个破坏的东西.但我想知道是否有任何其他方法可以实现相同的功能(具有相同的性能),而无需使用额外的变量或while循环.
我知道我们可以说:
found = "the one I'm looking for" in items
Run Code Online (Sandbox Code Playgroud)
我只是想了解是否可以在for循环中使用多个条件.
谢谢.
我构建了自己的继承自的Controller类BaseController.但是 ControllerContext构造函数是"null".我应该在哪里指定ControllerContext?
我目前在.NET中使用IE ActiveX(Web浏览器)控件在我的应用程序中显示HTML,但它非常缓慢(虚拟内存吃的负载),而且非常有限,我想用完全管理的方式来解决这个问题HTML查看器.
这是一个不同的请求C#(.NET)中是否有更好的Web浏览器控件?因为那是关于其他嵌入式浏览器(Firefox/Gecko).我不想嵌入浏览器,我想要一个妥善管理的控件.
我正在使用Entity Framework(v4.0)连接到SQL Azure(我安装了March SDK),并InvalidOperationException在尝试查询表时获取.异常消息是Invalid attempt to read when no data is present.,并且堆栈跟踪清楚地显示,当它尝试获取列标题时,它在EF内部失败:
at System.Data.SqlClient.SqlDataReader.ReadColumnHeader(Int32 i)
at System.Data.SqlClient.SqlDataReader.IsDBNull(Int32 i)
at lambda_method(Closure , Shaper )
at System.Data.Common.Internal.Materialization.Coordinator`1.ReadNextElement(Shaper shaper)
at System.Data.Common.Internal.Materialization.Shaper`1.SimpleEnumerator.MoveNext()
at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
at Service.LoadSettings() in C:\Service.svc.cs
at SyncInvokeLoadSettings(Object , Object[] , Object[] )
at System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object instance, Object[] inputs, Object[]& outputs)
at System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc& rpc)
Run Code Online (Sandbox Code Playgroud)
这特别与第二个表中的列中的数据有关(下例中的设置).如果我查询另一个表(如下面示例中的用户)或排除查询该列,则此工作完全正常.代码示例:
using (var db = new DBEntities())
{
var users = (from u in db.Users
where u.PK == userid
select u).ToList(); …Run Code Online (Sandbox Code Playgroud) C#有一个条件运算符和IF语句,我怀疑条件运算符只是语法糖.因此在编译时它将与IF操作相同.
然而,他们没有(见下文),他们确实有不同的IL.试图绕过它,我的假设是,这是条件运算符得到的性能优化,因为它的范围有限.
想知道我的假设是否正确,也许还有更多内容?
同样在IF的IL中,有一些关于int值的检查(L_000c,L_000d,L_000f),我无法弄清楚其含义.这使我认为这是一个更强大的解决方案,因为IF的范围更广,代价是性能.
var result = "";
if (Environment.Is64BitOperatingSystem)
{
result = "Yes";
}
else
{
result = "No";
}
Console.WriteLine(result);
Run Code Online (Sandbox Code Playgroud)
条件运算符的代码(我意识到差异,但无论我如何改变它 - 分配给变量等......它几乎没有区别)
Console.WriteLine("Is the OS x64? {0}", Environment.Is64BitOperatingSystem ? "Yes" : "No");
Run Code Online (Sandbox Code Playgroud)
IL为IF
L_0001: ldstr ""
L_0006: stloc.0
L_0007: call bool [mscorlib]System.Environment::get_Is64BitOperatingSystem()
L_000c: ldc.i4.0
L_000d: ceq
L_000f: stloc.2
L_0010: ldloc.2
L_0011: brtrue.s L_001d
L_0013: nop
L_0014: ldstr "Yes"
L_0019: stloc.0
L_001a: nop
L_001b: br.s L_0025
L_001d: nop
L_001e: ldstr "No"
L_0023: stloc.0
L_0024: nop …Run Code Online (Sandbox Code Playgroud) 我在Windows 8 Release Preview上使用Visual Studio Express 2012,我似乎无法让我的单元测试出现在测试资源管理器中.
我有一个名为TestApp.Entity的类,以及TestApp.EntityTest ...
这是我的代码:
namespace TestApp.Entity.Test
{
using System;
using System.Net.Http;
using Microsoft.VisualStudio.TestPlatform.UnitTestFramework;
using TestApp.Domain;
[TestClass]
public class EntityTests
{
[TestMethod]
public async void TestObject1Deserialize()
{
Uri agencyUri = new Uri("*removed*");
HttpClient httpClient = new HttpClient();
HttpResponseMessage response = await httpClient.GetAsync(agencyUri);
string responseBodyAsText = await response.Content.ReadAsStringAsync();
List<Agency> agencyList = Deserializers.AgencyDeserialize(responseBodyAsText);
CollectionAssert.Contains(agencyList, new Agency() { Tag = "*removed*", Title = "*removed*", ShortTitle = "", RegionTitle = "*removed*" });
}
}
}
Run Code Online (Sandbox Code Playgroud)
我认为这就是我需要做的全部,但它们仍未出现在测试资源管理器中.任何意见将是有益的.
我正在尝试创建一个powershell脚本来自动创建用户,这使用ADSI工作得很好.但是,我需要设置以下属性,我不知道如何(或ADSI甚至可以这样做):
任何想法如何做到这一点?
如何判断SharePoint类是否特定于WSS或MOSS?
例如,我可以仅在MOSS中使用SPAudit类吗?
我们正在开发一个开源和免费的大型数据库驱动的Web应用程序.对于这个项目,我们已经选择PostgreSQL作为数据库平台并启动了数据库工作.
我们已经使用了一段时间的微软技术,并且在一个盒子里集成了很多东西.使用Visual Studio,它很容易让它工作.
对于我们的新项目,我们不希望我们的客户被迫支付Windows Server许可证,因此正在寻找一种新的技术,类似的ASP.NET(可能更好或更差),可以在客户端站点上实现免许可证部署.
除了Web技术要求之外,我们理想地喜欢具有Web技术的IDE,它提供IDE与OS和服务器(Web服务器,调试器等等)之间的集成,就像Visual Studio一样.IDE可以是商业的或免费的.
理想情况下,我们希望保持ASP.NET并同时"免费".
由于Oracle威胁,我们没有考虑项目的"Java".我们也考虑过Mono,但害怕在生产环境中使用它.
.net ×3
c# ×2
adsi ×1
asp.net ×1
asp.net-mvc ×1
browser ×1
console ×1
ide ×1
il ×1
loops ×1
moss ×1
open-source ×1
powershell ×1
python ×1
sharepoint ×1
unit-testing ×1
wss ×1