这个是一个快速的:
cookie名称和值中允许的字符是什么?它们与URL或某些常见子集相同吗?
我要问的原因是,我最近发现了一些奇怪的行为,其中包含-名称中的cookie,我只是想知道它是否是浏览器特定的,或者我的代码是否有问题.
根据:http: //msdn.microsoft.com/en-us/library/ms175061.aspx 它说"NOT LIKE"关系运算符:"指定跟踪事件数据不能像输入的文本一样.允许多个值".
但是,您如何指定多个值?
我有时会看到这样编写的代码:
public class B1
{
}
public class B2
{
private B1 b1;
public B1 B1
{
get { return b1; }
set { b1 = value; }
}
}
Run Code Online (Sandbox Code Playgroud)
即,B2类具有名为"B1"的属性,其也是"B1"类型.
我的直觉告诉我这不是一个好主意,但有什么技术原因可以避免给出与其类同名的财产吗?
(我正在使用.net 2.0,以防万一).
示例代码:
private void DoSomething(object obj)
{
MessageBox.Show("called object");
}
private void DoSomething(params object[] obj)
{
MessageBox.Show("called object[]");
}
private void button1_Click(object sender, EventArgs e)
{
decimal? amount = null;
dynamic obj = amount;
DoSomething(obj);
}
Run Code Online (Sandbox Code Playgroud)
单击按钮1时,将显示消息"被调用对象[]".在这个例子中,似乎首选带有object []参数的重载方法.有什么想法吗?我比任何事情都好奇.
(背景:这种行为在使用动态视图的Razor中导致了一些意想不到的结果 在RazorEngine中格式化可为空的十进制).
示例代码:
public enum Foods
{
Burger,
Pizza,
Cake
}
private void button1_Click(object sender, EventArgs e)
{
Eat(0); // A
Eat((Foods)0); // B
//Eat(1); // C : won't compile : cannot convert from 'int' to 'Foods'
Eat((Foods)1); // D
}
private void Eat(Foods food)
{
MessageBox.Show("eating : " + food);
}
Run Code Online (Sandbox Code Playgroud)
C行的代码无法编译,但A行编译正常.有一个0值的枚举是否有特殊处理在这样的情况下得到特殊处理?
给定其中包含嵌入图像的SSRS报告定义文件,只是想知道是否可以提取该图像XML以重新创建原始图像文件.
例如:
在rdlc文件中,你可能会看到像这样的xml:
<EmbeddedImage Name="tick">
<MIMEType>image/bmp</MIMEType>
<ImageData>Qk1mAwAAAAAAADYAAAAoAAAAEAAAABEAAAABABgA ... <<REST OF IMAGE HERE>>
</ImageData>
</EmbeddedImage>
Run Code Online (Sandbox Code Playgroud)
是否可以采用ImageData,并以某种方式转换形式来重新创建原始图像位图字节流?
(这在您丢失嵌入图像所基于的原始图像文件的情况下可能很有用.)
示例代码说明:
int res1 = "a".CompareTo("A"); // res1 = -1
int res2 = "ab".CompareTo("A"); // res2 = 1
Run Code Online (Sandbox Code Playgroud)
我看到了res1 = -1,res2 = 1最后,这有点出乎意料.我认为res1会返回1,因为在ASCII图表上"A"(0x41)出现在"a"(0x61)之前.
而且,似乎很奇怪,因为res2字符串的长度似乎有所不同.即如果"a"出现在"A"之前(如res1 = -1所示),那么我会认为"a"withAnythingAfterIt也会出现在"A"withAnythingAfterIt之前.
有人可以解释一下吗?谢谢.
例如,我想运行一个windows批处理文件,比如upgrade.bat,它将一堆文件从源目录复制到批处理文件所在的目录.问题是,复制的其中一个文件可能是更新版本的升级.bat,以便批处理文件在其仍在运行时将覆盖自身.
这似乎导致批处理文件执行的一些不可预测的行为,所以我想避免复制仍在运行的批处理文件.理想情况下,我希望现有版本的upgrade.bat运行直到完成,然后下次运行新版本.有没有(简单)方法来实现这一目标?
我有一个用C#创建的数据表.
DataTable dt = new DataTable();
dt.Columns.Add("Name", typeof(string));
dt.Columns.Add("Age", typeof(int));
dt.Rows.Add("James", 23);
dt.Rows.Add("Smith", 40);
dt.Rows.Add("Paul", 20);
Run Code Online (Sandbox Code Playgroud)
我想将此传递给以下存储过程.
CREATE PROCEDURE SomeName(@data DATATABLE)
AS
BEGIN
INSERT INTO SOMETABLE(Column2,Column3)
VALUES(......);
END
Run Code Online (Sandbox Code Playgroud)
我的问题是:我们如何将这3个元组插入SQL表?我们需要使用点运算符访问列值吗?或者还有其他方法吗?
代码说明:
public struct MyStruct
{
public int SomeNumber;
}
public string DoSomethingWithMyStruct(MyStruct s)
{
if (s == null)
return "this can't happen";
else
return "ok";
}
private string DoSomethingWithDateTime(DateTime s)
{
if (s == null)
return "this can't happen"; // XX
else
return "ok";
}
Run Code Online (Sandbox Code Playgroud)
现在,"DoSomethingWithStruct"无法编译:"运算符'=='不能应用于'MyStruct'和' <null>'" 类型的操作数.这是有道理的,因为尝试与结构进行参考比较没有意义,结构是一种值类型.
OTOH,"DoSomethingWithDateTime"编译,但编译器警告:"检测到无法访问的代码"标记为"XX"的行.现在,我假设这里没有编译器错误,因为DateTime结构重载了"=="运算符.但编译器如何知道代码无法访问?例如,它是否在重载"=="运算符的代码内部?(这是使用Visual Studio 2005以防万一).
注意:我对上述情况比任何事都更好奇.我通常不会尝试使用"=="来比较结构和空值.
编辑:我将尝试简化我的问题 - 为什么"DoSomethingWithDateTime"编译,当"DoSomethingWithMyStruct"没有.两个参数都是结构.
c# ×6
.net ×4
sql-server ×2
ado.net ×1
batch-file ×1
c#-4.0 ×1
cookies ×1
image ×1
profiler ×1
t-sql ×1