今天我发现了一篇文章,其中一个const
字段称为编译时常量,而一个readonly
字段称为运行时常量.这两个短语来自"Effective C#".我在MSDN和语言规范中搜索,找不到运行时常量.
没有攻击性,但我不认为运行时常量是一个恰当的短语.
private readonly string foo = "bar";
Run Code Online (Sandbox Code Playgroud)
创建一个名为"foo"的变量,其值为"bar",值为readonly,这里它是一个变量,没有业务constant
.只读变量仍然是变量,它不能是常量.变量和常量是互斥的.
也许这个问题太过分了,我还是想听听别人的意见.你怎么看?
我基本上需要确保我对这项服务的要求.
我已经提供了一个JAR
测试客户端和两个文件,trust.jks
以及Client.pfx
,但我不知道如何使用它们:我明白X509Certificate2类是参与了一些办法.
执行测试客户端的命令行如下:
java -Djavax.net.ssl.trustStore=trust.jks -Djavax.net.ssl.trustStorePassword=******** -Djavax.net.ssl.trustStoreType=JKS -Djavax.net.ssl.keyStore=Client.pfx -Djavax.net.ssl.keyStoreType=pkcs12 -Djavax.net.ssl.keyStorePassword=******** -jar TestClient.jar https://myServiceurl
Run Code Online (Sandbox Code Playgroud)
它工作正常,所以我都可以看到服务,并且应该正确配置服务本身.
我的C#客户端(它的目标是.NET 2.0)使用普通的Web引用来执行请求:
wsReferenceClient service = new wsReferenceClient();
//certificate code here ?
//maybe service.ClientCertificates.Add(<X509Certificate2 object built somehow>); ?
service.MyRequest(myParameters);
Run Code Online (Sandbox Code Playgroud)
应正确设置服务器设置.
我摸索着这些X509Certificate2
方法,但我不能拿出一些有意义的东西,所以答案是"你试过了什么?" 现在的问题是"我真的不知道首先要尝试什么".
任何帮助将非常感激.
我对以下代码有一些问题.我想将一个字符串显式化为一个对象,这是完全正常的,但是,如果此对象是泛型类的一部分,则失败并出现以下错误异常:"无法转换类型为'System.String'的对象'输入'test.B'".即使我已经重载了该方法.
using System;
using System.Collections.Generic;
namespace test {
class Program {
static void Main(string [] args) {
// These two cast perfectly fine.
B x = (B) "abc";
C y = (C) "def";
A <B> a = new A<B>();
a.b();
A <C> b = new A<C>();
b.b();
}
}
class A<T> {
public List <T> a = new List<T>();
public void b() {
// Unable to cast object of type 'System.String' to type 'test.B'
this.a.Add ((T) (object) "abc");
this.a.Add ((T) …
Run Code Online (Sandbox Code Playgroud) 如何清除focusout
事件中的预先输入字段?
以下 jQuery 代码似乎在预先输入字段中不起作用:
$( "#field" ).focusout(function() {
$(this).val("");
});
Run Code Online (Sandbox Code Playgroud) 使用System.Data.SQLite
,我正在创建一个包含无符号整数列的表:
@"CREATE TABLE widgets (" +
@"id unsigned integer(10) PRIMARY KEY, " +
@"fkey unsigned integer(10), " + ...
Run Code Online (Sandbox Code Playgroud)
然后插入像这样的值
INSERT INTO widgets (id, fkey, ...) VALUES (4294967295, 3456, ...
Run Code Online (Sandbox Code Playgroud)
但是,循环遍历此表的行和列,我发现它row["id"]
具有类型System.Int32
(而不是UInt32
),并且毫不奇怪,4294967295被解释为-1.实际上,表中的所有unsigned int字段(不仅主键id被错误地键入System.Int32
)
同时,SQLite类型规范说整数存储在1,2,3,4,6或8个字节中,具体取决于值的大小.4294967295 = 0xFFFFFFFF只适合四个字节.它似乎与SQLite的所谓"动态类型"不一致.当我插入大于4294967295的正值时,类型仍然存在System.Int32
.
这是一个错误还是一个功能?
PS1:
我的表包含1行,列id = 2 ^ 32-1 = 4294967295(或更大),我打印所有列的类型
public void PrintDataTypes(DataTable dt) {
foreach (DataRow row in dt.Rows) {
foreach (DataColumn col in dt.Columns)
Console.WriteLine("name={0}, type={1}",
col.ToString(),
row[col].GetType().ToString());
return; // after 1st …
Run Code Online (Sandbox Code Playgroud) 我已经订阅各种事件OnNavigatedTo
像
protected override void OnNavigatedTo(NavigationEventArgs e)
{
Loaded += Screen_Loaded;
}
Run Code Online (Sandbox Code Playgroud)
我没有取消订阅此活动.不需要此页面时是否会导致内存问题?
我正在尝试在c#中创建一个"有序"对象列表,其中列表将按ImdbId属性中最常见的值排序.我没有使用数据库我从列表中的远程api获得结果,我只需要以优雅的方式对列表进行排序.
class Movie
{
String ImdbId {get; set; }
String Name {get;set;}
... more properties
}
Run Code Online (Sandbox Code Playgroud)
未排序列表的示例:
imdbId | Name
698649 | "Sex and the City" Models and Mortals
698669 | "Sex and the City" The Awful Truth
698649 | "Sex and the City" Models and Mortals
698649 | "Sex and the City" Models and Mortals
698679 | "Sex and the City" The Drought
698697 | "Sex and the City" Valley of the Twenty-Something Guys
1568911 | War Horse
Run Code Online (Sandbox Code Playgroud)
排序应该如下所示: …
我是第一次使用Nlog.我的目标是只写一个文本文件.
在main.c我有
class Program
{
private static Logger logger = LogManager.GetCurrentClassLogger();
static void Main(string[] args)
{
logger.Trace("Sample trace message");
logger.Debug("Sample debug message");
logger.Info("Sample informational message");
logger.Warn("Sample warning message");
logger.Error("Sample error message");
logger.Fatal("Sample fatal error message");
}
}
Run Code Online (Sandbox Code Playgroud)
我的Nlog.config
文件如下:
<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<targets>
<target name="logfile" xsi:type="File" fileName="file.txt" />
</targets>
<rules>
<logger name="*" minlevel="Info" writeTo="logfile" />
</rules>
</nlog>
Run Code Online (Sandbox Code Playgroud)
但是我无法在当前目录中创建txt文件.
我的C#程序应该每秒执行30次异步任务.
该程序作为独立的Windows应用程序运行良好.
但是当它在Visual Studio 2013 Professional环境中以调试模式运行时,性能非常差 - 每秒只有5个任务,即使代码中没有断点也是如此.
缓慢调试VS.Net 2013的"功能"是否有办法调试时间关键的C#应用程序?
我正在尝试使用CRM 2013中的业务规则功能基于另一个字段计算日期字段值.该字段被锁定在表单上,以便用户无法修改.我认为由于这个设置,字段值最初设置为赌注,但是当我点击"保存"按钮时,该值消失.
我认为这与setSubmitMode("always")
只读字段的问题相同.我想知道是否有办法在业务规则或表单/字段设置中解决此问题?
c# ×8
.net ×1
casting ×1
certificate ×1
console ×1
const ×1
debugging ×1
dynamics-crm ×1
explicit ×1
generics ×1
java ×1
javascript ×1
jquery ×1
lambda ×1
linq ×1
nlog ×1
performance ×1
readonly ×1
request ×1
sqlite ×1
ssl ×1
typeahead.js ×1
windows-8 ×1