假设在表单中发布了一个JavaScript数组(使用ajax/JQuery),是否保证了数组中的顺序?
来自@Quentin的有效问题"定义"以表格形式发布'"
$.ajax({
type: "POST",
url: url,
data: { foo: [{ name: "one" }, { name: "two" }] },
success: success,
dataType: dataType
});
Run Code Online (Sandbox Code Playgroud)
扩展问题(由于上述原因),数组是否保证在服务器端保留顺序?
这里是剧透......
我正在看#1 的答案,我必须承认我从来不知道重载决议是这种情况.但为什么会这样呢.在我的小脑袋里Derived.Foo(int)
似乎是合乎逻辑的道路.
这个设计决定背后的逻辑是什么?
奖金时间!
此行为是C#规范,CLR实现还是编译器的结果?
(背景:为什么我应该在C#中使用int而不是字节或short)
为了满足我自己对使用"适当大小"整数与"优化"整数的优缺点的好奇心,我编写了以下代码,强化了我以前在.Net中对int性能的真实性(并在链接中对此进行了解释)以上)它是针对int性能而不是short或byte进行优化的.
DateTime t;
long a, b, c;
t = DateTime.Now;
for (int index = 0; index < 127; index++)
{
Console.WriteLine(index.ToString());
}
a = DateTime.Now.Ticks - t.Ticks;
t = DateTime.Now;
for (short index = 0; index < 127; index++)
{
Console.WriteLine(index.ToString());
}
b=DateTime.Now.Ticks - t.Ticks;
t = DateTime.Now;
for (byte index = 0; index < 127; index++)
{
Console.WriteLine(index.ToString());
}
c=DateTime.Now.Ticks - t.Ticks;
Console.WriteLine(a.ToString());
Console.WriteLine(b.ToString());
Console.WriteLine(c.ToString());
Run Code Online (Sandbox Code Playgroud)
这在......的范围内给出了大致一致的结果.
〜95万
〜2000000
〜1700000
这与我期望看到的一致.
但是当我尝试重复每个数据类型的循环时......
t = DateTime.Now;
for (int …
Run Code Online (Sandbox Code Playgroud) 我已经告诉System.IO.MemoryStream不必在被包装使用的块,因为没有基本的资源,这有点违背我一直都告诉流("如有疑问,请使用使用 ") .
这是真的?为什么MSDN示例使用一个(总结如下)?
using(MemoryStream memStream = new MemoryStream(100))
{
// do stuff
}
Run Code Online (Sandbox Code Playgroud) 我想我生气了,有人请安慰我.
public class MyFile
{
public static byte[] ReadBinaryFile(string fileName)
{
return File.ReadAllBytes(fileName);
}
public static void WriteBinaryFile(string fileName, byte[] fileContents)
{
File.WriteAllBytes(fileName, fileContents);
}
}
Run Code Online (Sandbox Code Playgroud)
人们继续在我们的代码库中添加如上所述的代码,肯定这是错误和可怕的,我通过删除它并用内部替换所有(或在这种情况下都是......)引用它来帮助世界码.
这种事情有没有真正的理由?我可以错过更大的图片吗?我们是相当YAGNI -centric我们的团队,这似乎在面部飞.我能理解这是否是更多的开始,但是这段代码已经蛰伏了很多个月,直到我今天绊倒它.我搜索的越多,我发现的越多.
使用c#3编译变换以下似乎工作得很好......
<xsl:choose>
<xsl:when test="$valA > $valB">
<xsl:value-of select="$maxUnder" />
</xsl:when>
<xsl:when test="$valA < $valC">
<xsl:value-of select="$maxOver" />
</xsl:when>
</xsl:choose>
Run Code Online (Sandbox Code Playgroud)
但是,如果我敢用它<
代替<
它会给出错误......
<xsl:choose>
<xsl:when test="$valA > $valB">
<xsl:value-of select="$maxUnder" />
</xsl:when>
<xsl:when test="$valA < $valC">
<xsl:value-of select="$maxOver" />
</xsl:when>
</xsl:choose>
Run Code Online (Sandbox Code Playgroud)
System.Xml.XmlException:'<',十六进制值0x3C,是无效的属性字符.
那么为什么>
没有<
呢?
我看过许多有关如何使用 AmazonS3Client 和 S3Response 对象的示例,但从未见过有人费心处理它们,这让我想知道是否有一些我遗漏的隐含知识?
public class S3Response : IDisposable
{
public void Dispose();
~S3Response();
}
public class AmazonS3Client : AmazonS3, IDisposable
{
public void Dispose();
~AmazonS3Client();
}
Run Code Online (Sandbox Code Playgroud)
它们都明确地实现了IDisposable
(这告诉我我应该自己处理它们),但它们还指定了一个析构函数方法,这(以及前面提到的示例)让我觉得我是否错过了一些自动的东西?
难道是析构函数 Dispose
在幕后调用?执行这种魔术行为肯定是不好的形式。
有更多 Amazon S3 服务经验的人可以提供一些见解吗?
有谁知道如何在程序上围绕屏幕移动我的SDL.net视频表面?
Surface videoContext = Video.SetVideoMode(1024, 768, 32, false, false, false, true, true);
var a = System.Windows.Forms.Control.FromHandle(Video.WindowHandle);
var b = System.Windows.Forms.NativeWindow.FromHandle(Video.WindowHandle);
Run Code Online (Sandbox Code Playgroud)
我找不到任何属性Surface
或者Video
做什么工作,并且FromHandle
返回Null.
窗口正在初始化从屏幕底部掉落. 替代文字http://i42.tinypic.com/2mespe0.png
有任何想法吗?
更新:
我已经看过这段代码,但无法解决一个等效的C#implimentation.有人可以帮忙吗?
#ifdef WIN32
#include <SDL_syswm.h>
SDL_SysWMinfo i;
SDL_VERSION( &i.version );
if ( SDL_GetWMInfo ( &i) ) {
HWND hwnd = i.window;
SetWindowPos( hwnd, HWND_TOP, x, y, width, height, flags );
}
Run Code Online (Sandbox Code Playgroud)
如果不这样做,在我的c#项目中包含一些c ++会涉及多少工作?
谢谢.
private static Dictionary<Type, Func<string, object>> _parseActions
= new Dictionary<Type, Func<string, object>>
{
{ typeof(bool), value => {Convert.ToBoolean(value) ;}}
};
Run Code Online (Sandbox Code Playgroud)
以上给出了错误
错误14并非所有代码路径都返回类型为'System.Func <string,object>'的lambda表达式中的值
但是下面的确如此.
private static Dictionary<Type, Func<string, object>> _parseActions
= new Dictionary<Type, Func<string, object>>
{
{ typeof(bool), value => Convert.ToBoolean(value) }
};
Run Code Online (Sandbox Code Playgroud)
我不明白两者之间的区别.我认为example1中的额外大括号是允许我们在anon函数中使用多行,那么为什么它们会影响代码的含义呢?
我是一个打字稿新手,我正在选择一个现有的 durandal 项目来进行一些更改。我注意到这个代码片段给出了一个运行时错误。
declare var routeLinks: IRouteLinks;
routeLinks = new RouteLinks();
export = routeLinks;
Run Code Online (Sandbox Code Playgroud)
错误 = Failed to load root module (ui/shell). Details: routeLinks is not defined(…)
但是,当我更改代码以删除declare
关键字(如下)时,问题就消失了,代码似乎按预期工作。
var routeLinks: IRouteLinks;
routeLinks = new RouteLinks();
export = routeLinks;
Run Code Online (Sandbox Code Playgroud)
这种模式在很多地方被复制,每次我遇到运行时异常时,我都会进入并删除declare
关键字并解决问题。
declare
关键字会导致这个问题,为什么删除它可以解决这个问题? declare
在这种情况下首先使用 的可能意图是什么(如果可能,用新手术语)?谢谢。
更多信息
进一步研究这一点,当我比较编译的 js 时,我发现当我们使用declare
关键字时缺少这一行
var routeLinks;
Run Code Online (Sandbox Code Playgroud)
所以这个错误现在对我来说更有意义,但是为什么 usingdeclare
会导致交叉编译器删除变量声明,这似乎违反直觉。
c# ×6
.net ×2
amazon-s3 ×1
api ×1
arrays ×1
c#-3.0 ×1
coding-style ×1
delegates ×1
durandal ×1
for-loop ×1
function ×1
idisposable ×1
javascript ×1
performance ×1
post ×1
sdl ×1
sdl.net ×1
stream ×1
syntax ×1
types ×1
typescript ×1
winapi ×1
xml ×1
xpath ×1
xslt ×1