这可能是常见和微不足道的事情,但我似乎无法找到具体的答案.在C#中有一个委托的概念,它与C++中的函数指针的思想密切相关.Java中是否有类似的功能?鉴于指针有点缺席,最好的方法是什么?要说清楚,我们在这里谈论头等舱.
我不怕承认我是一个C++新手,所以这看起来像是一个愚蠢的问题,但......
我看到DWORD在代码示例中使用了所有地方.当我查看DWORD的真正含义时,它显然只是一个无符号整数(0到4,294,967,295).所以我的问题是,为什么我们有DWORD?它给了我们积分类型'unsigned int'不是什么?它与便携性和机器差异有关吗?
我在Java中编写了一个井字游戏,我目前确定游戏结束的方法解释了游戏结束的以下可能情况:
不幸的是,为了做到这一点,它从表中读取了一组预定义的这些场景.考虑到电路板上只有9个空格,这并不一定是坏的,因此表格有点小,但有没有更好的算法来确定游戏是否结束?确定某人是否赢了是问题的关键,因为检查9个空格是否已满是微不足道的.
表方法可能是解决方案,但如果没有,那是什么?另外,如果电路板尺寸不大n=9怎么办?如果它是一个更大的板,比如n=16,n=25等,造成连续放置物品的数量取胜是x=4,x=5等?一种用于所有人的通用算法n = { 9, 16, 25, 36 ... }?
对于C++,是否有像Javadoc这样的文档生成系统?Javadoc产生了很好的输出; 如果你能在其他语言中使用类似的东西,那就太棒了.
如果我创建一个通用的java类,例如:
public class Foo<T>
Run Code Online (Sandbox Code Playgroud)
如何确定那个类的内部,'T'到底是什么?
public ???? Bar()
{
//if its type 1
// do this
//if its type 2
// do this
//if its type 3
// do this
//if its type 4
// do this
}
Run Code Online (Sandbox Code Playgroud)
我已经开始使用Java API并使用Reflection的东西,instanceof,getClass,.class等,但我似乎无法对它们做出正面或反面.我觉得我很接近,只需要结合一些电话,但不断提出来.
更具体地说,我试图确定该类是否使用3种可能类型之一进行实例化.
所以我有一个IEnumerable<string>可以包含可以解析int为的值,以及不能的值.
如您所知,Int32.Parse如果字符串无法更改为int,则抛出异常,同时Int32.TryParse可用于检查并查看是否可以在不处理异常的情况下进行转换.
所以我想使用LINQ查询来解析那些可以解析为int的字符串,而不会抛出异常.我有一个解决方案,但希望社区提出有关这是否是最佳方法的建议.
这就是我所拥有的:
int asInt = 0;
var ints = from str in strings
where Int32.TryParse(str, out asInt)
select Int32.Parse(str);
Run Code Online (Sandbox Code Playgroud)
所以你可以看到,我正在使用它asInt作为调用的临时空间TryParse,只是为了确定是否TryParse会成功(返回bool).然后,在投影中,我实际上正在执行解析.那感觉很难看.
这是使用LINQ过滤单行中的可解析值的最佳方法吗?
处理整数溢出是一项常见任务,但在C#中处理它的最佳方法是什么?是否有一些语法糖比其他语言更简单?或者这真的是最好的方式吗?
int x = foo();
int test = x * common;
if(test / common != x)
Console.WriteLine("oh noes!");
else
Console.WriteLine("safe!");
Run Code Online (Sandbox Code Playgroud) 我正在使用NuGet Package Restore.我想在TFS构建服务器进程中指定自定义源.
隐藏的".nuget"文件夹中的NuGet.targets文件表明您可以指定源存储库,也可以回退到%APPDATA%\ NuGet\NuGet.config中的NuGet.config.
但是在隐藏的'.nuget'文件夹中也有一个NuGet.config.我假设如果您没有在NuGet.targets中指定源存储库,那么它将回退到隐藏的".nuget"文件夹中的NuGet.config.似乎并非如此.
有任何想法吗?
在.NET框架中,有几种方法可以计算MD5哈希值,但有些东西我不明白;
以下有什么区别?是什么让他们与众不同?它们似乎产生相同的结果:
public static string GetMD5Hash(string str)
{
MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
byte[] bytes = ASCIIEncoding.Default.GetBytes(str);
byte[] encoded = md5.ComputeHash(bytes);
StringBuilder sb = new StringBuilder();
for (int i = 0; i < encoded.Length; i++)
sb.Append(encoded[i].ToString("x2"));
return sb.ToString();
}
public static string GetMD5Hash2(string str)
{
System.Security.Cryptography.MD5 md5 = System.Security.Cryptography.MD5.Create();
byte[] bytes = Encoding.Default.GetBytes(str);
byte[] encoded = md5.ComputeHash(bytes);
StringBuilder sb = new StringBuilder();
for (int i = 0; i < encoded.Length; i++)
sb.Append(encoded[i].ToString("x2"));
return sb.ToString();
}
Run Code Online (Sandbox Code Playgroud) 我正在使用Forms Authentication和ASP.NET MVC 2开发基于声明的授权系统.我看到一个名称空间"Microsoft.IdentityModel"提供了许多与其他"System.IdentityModel"相同的东西.
当功能看似重叠时,为什么这两个命名空间分开存在?