为什么以下引发编译时错误:'无法将类型'int'隐式转换为'byte':
byte a = 25;
byte b = 60;
byte c = a ^ b;
Run Code Online (Sandbox Code Playgroud)
如果我使用算术运算符,这将是有意义的,因为a + b的结果可能大于可以存储在单个字节中的结果.
然而,将其应用于XOR运算符毫无意义.这里是一个按位操作,它永远不会溢出一个字节.
在两个操作数周围使用转换:
byte c = (byte)(a ^ b);
Run Code Online (Sandbox Code Playgroud) 对于3D图形编程领域经验最少(或没有经验)的人来说,最好的指南/教程/书籍/网站是什么?
我意识到3D图形和数学的基础知识适用于平台特定的3D库实现,如OpenGL,DirectX,WPF等.
因此,如果答案可以解释它们是专注于特定的库实现,基础知识还是两者兼而有之,那将是有用的.
提出这个问题的理由:
借助Windows Presentation Foundation(WPF)3D现场,许多程序员现在认真考虑将3D用于他们的应用程序是很现实的,即使在几年前这几乎是不可能的.
我确信有很多程序员在那里,像我一样,他们发现从2D到3D的飞跃非常大.
有谁知道支持Windows平台上GUI应用程序开发的免费工具(语言,环境)?
我希望能够创建一个不依赖于任何外部运行时或库的单个可执行文件.
我希望能够以与SysInternals的Process Explorer或Autoruns非常相似的方式运行此EXE.换一种说法; 没有安装程序,便携式应用程序
此应用程序还必须提供相当丰富的窗口(控件,窗口小部件等)用户界面,并应在Windows 2000,XP,Vista和更高版本上运行.
我知道C/C++,但我正在寻找一种环境/语言,为GUI开发提供更具体,更快速的支持.此外,德尔福需要花钱.
我意识到FileSystemWatcher不提供Move事件,而是为同一个文件生成单独的Delete和Create事件.(FilesystemWatcher正在观察源文件夹和目标文件夹).
但是,我们如何区分真正的文件移动和一些文件的随机创建,该文件恰好与最近删除的文件同名?
FileSystemEventArgs类的某种属性,例如"AssociatedDeleteFile",如果它是移动的结果,则分配已删除的文件路径,否则为NULL,这将是很好的.但当然这不存在.
我也理解FileSystemWatcher在基本的文件系统级别运行,因此"移动"的概念可能仅对更高级别的应用程序有意义.但如果是这种情况,人们会建议在我的应用程序中使用什么样的算法来处理这种情况?
根据反馈更新:
FileSystemWatcher类似乎看到将文件移动为2个不同的事件,删除原始文件,然后在新位置创建.
不幸的是,这些事件之间没有提供"链接",因此如何区分文件移动和普通的删除或创建并不明显.在操作系统级别,移动被特别处理,您可以几乎立即移动说1GB文件.
一些答案建议在文件上使用散列来在事件之间可靠地识别它们,我将合理地采用这种方法.但如果有人知道如何更简单地发现一个动作,请留下答案.
如何检索cmd.exe的当前工作目录?
这似乎是可能的.例如,使用ProcessExplorer,选择CMD.exe,右键单击,属性,图像选项卡,"当前目录"使用CD或CHDIR命令关联目录集.
我查看了.NET Process和ProcessStartInfo类(ProcessStartInfo.WorkingDirectory总是返回""),似乎无法找到确定这一点的方法.PInvoke的任何一个都不突出.
作为一个例子,我希望以编程方式能够说出类似:Process.GetCurrentWorkingDirectory(processID),其中processID是另一个正在运行的进程的Windows进程ID.
有没有解决方案,WinAPI或.NET?
[更新]
提出这个问题的原因:
我已经使用了"命令提示符浏览器栏"一段时间,它很棒,除非我"CD"到一个新目录,当前的资源管理器窗口也没有改变.(即,从资源管理器到命令提示符只有1路同步).我想要做到这一点.
我当前的观点是否定的,更喜欢Transact SQL存储过程,因为它们的重量较轻且(可能)性能更高,而CLR程序允许开发人员应对各种恶作剧.
但是最近我需要调试一些写得很差的TSQL存储过程.像往常一样,我发现许多问题是由于原始开发人员开发人员没有真正的TSQL经验,他们是以ASP.NET/C#为重点.
因此,使用CLR过程首先会为这类开发人员提供更熟悉的工具集,其次,调试和测试工具更强大(即Visual Studio而不是SQL Management Studio).
我很想听听你的经历,因为它似乎不是一个简单的选择.
尝试开发某种游戏,即使只是作为闲暇时的业余爱好提供有用的(专业)体验,还是幼稚的浪费时间?
在整个编程生涯中,我一直在追求小型的个人游戏项目.我发现(通常)严格的性能要求和不断升级的设计复杂性教会了我一些最有用的编程课程.
在这些项目中仅举几例,我很快就面对面地说:"对于小N来说,一切都很快".我还发现了使用基本的面向对象设计原则来管理复杂性的艰难方法.
在许多技术和主题可能非常干燥/枯燥的领域,我认为爱好游戏开发对于激励新的(而不是那么新的)开发人员在同时享受乐趣的同时提高基本技能非常重要.
这个问题总体上讨论了业余爱好项目,但是在这里我对游戏项目特别感兴趣以及它们对专业程序员的价值.
大约5年前,Joel Spolsky撰写了这篇文章,"绝对最低限度,每个软件开发人员绝对必须知道Unicode和字符集(没有借口!)".
像许多人一样,我仔细阅读,意识到我很高兴能够掌握这种"替代ASCII".不幸的是,5年后,我觉得我已经在这个领域重新陷入了一些坏习惯.你呢?
我没有写很多专门的国际应用程序,但是我已经帮助构建了许多面向ASP.NET的互联网网站,所以我想这不是一个借口.
所以为了我的利益(我相信很多其他人),我可以从以下方面获得人们的一些意见:
我必须承认我有.NET背景,所以也很乐意在.NET框架中获取有关Unicode的信息.当然,这不应该阻止任何具有不同背景的人发表评论.
更新:请参阅之前在StackOverflow上提出的相关问题.
作为最近的工作申请的一部分,我被要求为这个问题编写解决方案.
鉴于,
每个人都有一个唯一的(递增的)id.从第一个人(最低身份证)开始,他们从1到k开始计数.
然后移除k处的人并且圆圈闭合.下一个剩余的人(在被淘汰的人之后)恢复计数为1.这个过程重复,直到只剩下一个人为胜者.
解决方案必须提供:
性能限制:
我记得多年前在我的CS课程中做过类似的事情,但在这次测试时无法回想起细节.我现在意识到这是一个众所周知的经典问题,有多种解决方案.(我不会提到它的名字,因为有些人可能只是'维基百科'的答案).
我已经提交了我的解决方案,所以我绝对不会找人帮我回答.如果其他人提供了一些答案,我会稍后提供一次.
我提出这个问题的主要目的是看看我的解决方案在满足要求和约束条件下与其他解决方案的比较.
(请仔细注意要求,因为我认为它们可能会使某些"经典"解决方案失效.)
我无法使用Lucene.NET 2.0.0.4搜索确切的短语
例如,我正在搜索"范围属性设置变量"(包括引号)但没有收到匹配项,我已经确认100%该短语存在.
任何人都可以建议我哪里出错了?这甚至是Lucene.NET支持的吗?像往常一样,API文档没有太大帮助,我读过的一些CodeProject文章并没有特别涉及到这一点.
使用以下代码创建索引:
Directory dir = Lucene.Net.Store.FSDirectory.GetDirectory("Index", true);
Analyzer analyzer = new Lucene.Net.Analysis.SimpleAnalyzer();
IndexWriter indexWriter = new Lucene.Net.Index.IndexWriter(dir, analyzer,true);
//create a document, add in a single field
Lucene.Net.Documents.Document doc = new Lucene.Net.Documents.Document();
Lucene.Net.Documents.Field fldContent = new Lucene.Net.Documents.Field(
"content", File.ReadAllText(@"Documents\100.txt"),
Lucene.Net.Documents.Field.Store.YES,
Lucene.Net.Documents.Field.Index.TOKENIZED);
doc.Add(fldContent);
//write the document to the index
indexWriter.AddDocument(doc);
Run Code Online (Sandbox Code Playgroud)
然后我使用以下方法搜索短语:
//state the file location of the index
Directory dir = Lucene.Net.Store.FSDirectory.GetDirectory("Index", false);
//create an index searcher that will perform the search
IndexSearcher searcher = new Lucene.Net.Search.IndexSearcher(dir);
QueryParser qp …
Run Code Online (Sandbox Code Playgroud)