我有一个简单的应用程序与以下代码:
FileInfo[] files = (new DirectoryInfo(initialDirectory)).GetFiles();
List<Thread> threads = new List<Thread>(files.Length);
foreach (FileInfo f in files)
{
Thread t = new Thread(delegate()
{
Console.WriteLine(f.FullName);
});
threads.Add(t);
}
foreach (Thread t in threads)
t.Start();
Run Code Online (Sandbox Code Playgroud)
让我们说在'I = initialDirectory'目录中我有3个文件.然后,该应用程序应创建3个线程,每个线程打印一个文件名; 但是,每个线程将打印出'files'数组中最后一个文件的名称.
为什么是这样?为什么当前文件'f'变量无法正确设置匿名方法?
我迫切需要一些建议.
作为CS专业,我差不多完成了大三.我有点觉得自己是一个后来者,因为直到二年级才开始进入计算机科学......通过努力工作,一年中有很多学分和暑期学校,我几乎赶上了同龄人,但是这里来了忧虑:
我的所有学校工作都教会了我很多关于计算机科学的知识,但很少关于实际编程.虽然我有很多动力,但我几乎没有空闲时间让我接受侧面项目.这让我感到不安,原因有两个,1)我真的对这个领域充满热情; 2)我知道很多雇主都喜欢看到在校外有经验的学生.
所以我最近有一个想法:如果我将Linux作为我的主要操作系统,但尽可能地限制自己到终端,试图自然地(在谷歌的帮助下)熟悉命令行,并希望逐渐恢复shell脚本使用在线教程.
你认为这对有抱负的程序员有多大帮助?它有多现实?对于小型项目,您还有其他建议吗?几乎没有空闲时间的学生可以在校外接听吗?
非常感谢,我喜欢这个网站(和播客),并将感谢任何反馈.
这有什么区别:
void MyMethod(IMyInterface value)
{
//...
}
Run Code Online (Sandbox Code Playgroud)
还有这个:
void MyMethod<T>(T value) where T : IMyInterface
{
//...
}
Run Code Online (Sandbox Code Playgroud) 我在MSDN上看这个页面:
它说如下:
每个"非
宽"表的最大列数:每个"宽"表1,024个最大列:30,000
但是我无法找到有关SQL 2008中"宽"和"非宽"表之间差异的任何信息.如果我想定义一个"宽"表,我该怎么做?
在.NET世界中,编组是指仅通过某个边界或通过线路传输的对象/数据的准备,还是指跨边界或线路的准备和传输.
什么可以组织一个电话意味着什么.它是否仅仅意味着在上下文边界上"转移"调用的包装,还是包含和发送(即调用)调用?
很抱歉是个坚持者......
克拉里
我鄙视使用过度设计的API,这些API并不简单.尽管如此,我正在为一个开源库设计一个API,我开始觉得我陷入了过度工程陷阱.我当然无法确定,因为当然,我写了一些令人讨厌的东西,所以它的工作原理对我来说比其他任何人都更明显.从开发人员的角度来看,您的API可能过度设计有哪些警告信号?
我有以下,相当标准的代码作为包装CSharpCodeProvider.这个类运行得很好,执行得很好,等等.但是,尽管我的应用程序是针对.NET 3.5构建的,并且在进行此编译时引用了v3.5程序集,但我仍然无法访问任何更好的C#3.5语法,如lambda或auto-properties.有没有办法让这个工作?
我的印象是这个课程刚刚开始csc.exe,我的防火墙似乎已经证实了这个想法(我的应用程序试图访问csc.exe).也许我只需要设置options.CompilerOptions一些东西?
protected virtual void Compile()
{
Microsoft.CSharp.CSharpCodeProvider csProvider = new Microsoft.CSharp.CSharpCodeProvider();
CompilerParameters options = new CompilerParameters();
options.GenerateExecutable = false;
options.GenerateInMemory = true;
options.IncludeDebugInformation = true;
foreach (string s in this.ReferencedAssemblies)
{
options.ReferencedAssemblies.Add(s);
}
CompilerResults result;
string source = this.CodeTemplate;
// [snip] Do some manipulation to fill in the template with values.
result = csProvider.CompileAssemblyFromSource(options, source);
this.HasErrors = result.Errors.HasErrors;
this.Errors = new CompilerError[result.Errors.Count];
result.Errors.CopyTo(Errors, 0);
if (HasErrors && ThrowOnErrors)
throw new …Run Code Online (Sandbox Code Playgroud) 我需要设置如下的查询:
UPDATE XXXXXX
IF column A = 1 then set column B = 'Y'
ELSE IF column A = 2 then set column C = 'Y'
ELSE IF column A = 3 then set column D = 'Y'
Run Code Online (Sandbox Code Playgroud)
等等等等...
我能够使用多个查询来执行此操作,但我想知道,如果我只能在1个语句中执行此操作.
假设开发人员有兴趣学习Scrum,但团队中没有其他人感兴趣.我意识到Scrum是为团队制作的,并且必须修改该过程以适合单个人.
开发人员尝试使用Scrum是否有任何好处,即使团队没有?如果是这样,如何修改流程以适应这种情况?
我的SQL Server 2008表中有一个Money列.在我的下面查询中,如何将其舍入到最接近的5 $
select FineAmount from tickets
Run Code Online (Sandbox Code Playgroud)
谢谢
.net ×2
c# ×2
.net-2.0 ×1
agile ×1
api ×1
api-design ×1
generics ×1
interface ×1
linux ×1
marshalling ×1
scrum ×1
shell ×1
sql-server ×1