我想写一个函数,返回最近的2个数的下一个幂.例如,如果我的输入是789,输出应该是1024.有没有任何方法可以实现这一点而不使用任何循环但只使用一些按位运算符?
为什么不能在lambda表达式中使用ref或out参数?
我今天遇到了错误并找到了解决方法,但我仍然很好奇为什么这是编译时错误.
CS1628:不能在匿名方法,lambda表达式或查询表达式中的ref或out参数'parameter'中使用
这是一个简单的例子:
private void Foo()
{
int value;
Bar(out value);
}
private void Bar(out int value)
{
value = 3;
int[] array = { 1, 2, 3, 4, 5 };
int newValue = array.Where(a => a == value).First();
}
Run Code Online (Sandbox Code Playgroud) 想象一下,你在一座有猫的高楼里.这只猫可以在低矮的故事窗口中摔下来,但如果从高楼层抛出,它就会死亡.你怎么能用最少的尝试数来计算猫可以存活的最长时间?
显然,如果你只有一只猫,那么你只能线性搜索.先从一楼扔猫.如果它存活下来,从第二个扔掉它.最终,从地板f抛出后,猫会死.然后你知道楼层f-1是最大的安全楼层.
但是,如果你有一只以上的猫怎么办?您现在可以尝试某种对数搜索.让我们说这个版本有100层,你有两个相同的猫.如果你将第一只猫从50楼扔出去并且死亡,那么你只需要线性搜索50个楼层.如果您为第一次尝试选择较低楼层,则可以做得更好.假设您选择一次解决20个楼层的问题,并且第一个致命楼层是#50.在这种情况下,你的第一只猫将在从60楼死亡之前从20楼和40楼的飞行中幸存下来.你只需要分别检查楼层41到49.这总共有12次尝试,这比你试图使用二进制消除所需的50次要好得多.
一般来说,对于有2只猫的n层建筑来说,最好的策略和最坏情况的复杂性是什么?n楼和m猫怎么样?
假设所有猫都是等同的:它们都将从给定窗口的摔倒中幸存或死亡.此外,每一次尝试都是独立的:如果一只猫在跌倒时幸存下来,它就完全没有受到伤害.
这不是家庭作业,虽然我可能已经解决了一次学校作业.这只是一个异想天开的问题,今天突然出现在我脑海中,我不记得解决方案了.如果有人知道此问题的名称或解决方案算法的加分点.
language-agnostic algorithm dynamic-programming asymptotic-complexity
我安装了Roslyn.现在,如果我知道在Visual Studio中查看的位置,我可以打开"C#交互式窗口",然后运行代码:
> 5 + 3
8
Run Code Online (Sandbox Code Playgroud)
那很可爱.现在我该如何与我的代码进行交互-my类?假设我打开了一个项目.
> new Cog()
(1,5): error CS0246: The type or namespace name 'Cog' could not be found (are you missing a using directive or an assembly reference?)
Run Code Online (Sandbox Code Playgroud) 我如何下载NuGet包?我没有NuGet Visual Studio扩展或命令行程序nuget.exe.如何从网上下载.nupack文件?据我所知,我将能够从中提取.dll文件(使用7-zip)以正常使用.
我碰巧感兴趣的包是http://nuget.org/packages/Microsoft.Bcl.Async,但我想知道如何做到这一点一般.
在Ruby世界中,这很容易 - RubyGems网站上的每个包页都有一个.gem文件的下载链接,例如:https://rubygems.org/gems/pony
关于NuGet明显命运的论点属于其他地方.这个问题无关紧要,为什么我避开它.我不是唯一一个.
我发现虽然字符串插值在应用于我现有的代码库的字符串格式调用时非常好,但考虑到通常首选的列限制,字符串对于单行很快就会变得太长.特别是当插值的表达式很复杂时.使用格式字符串,您可以将变量列表拆分为多行.
var str = string.Format("some text {0} more text {1}",
obj1.property,
obj2.property);
Run Code Online (Sandbox Code Playgroud)
有没有人有任何打破这些线路的首选方法?
我想你可以这样做:
var str = $"some text { obj1.property }" +
" more text { obj2.property };
Run Code Online (Sandbox Code Playgroud) 我反编译了一些C#7库并看到了使用的ValueTuple泛型.是什么ValueTuples以及为什么不Tuple呢?
我可以通过java.util.Date(毫秒)在Java 中创建一个类似的Date对象.如何在Python中创建可比较的?
分配Date对象并将其初始化以表示自标准基准时间(称为"epoch")以来的指定毫秒数,即1970年1月1日00:00:00 GMT.
在Visual Studio 2010 for C#项目中,如果转到项目属性>构建>高级>调试信息,则有三个选项:none,full或pdb-only.根据这个问题的答案,我相信我理解full和pdb之间的一些区别.但是,哪个更适合发布版本?如果我使用"完整"会有性能影响吗?如果我使用"pdb-only",那么调试生产问题会更难吗?
"full"和"pdbonly"有什么区别?https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-options/debug-compiler-option