Tag: C#的

将枚举序列化为string

我有一个枚举: public enum Action { Remove=1, Add=2 } 还有一堂课: [DataContract] public class Container { [DataMember] public Action Action {get; set;} } 当序列化容器实例的JSON我得到: {Action:1} (如果行动是删除)。 我想得到: {Action:Remove} (而不是int我需要ToStringforms的枚举) 我能做到这一点吗?

你用一段时间结束你的exception信息吗?

我已经看到有和没有句点的两个exception消息。 我可以想一些为什么两个都可以的好理由。 没有点会给你自由添加期限或离开它,如果你想。 如果邮件进入某种标题栏或某物,可能会有用。 用一个点,你总是会知道你有一个“完整的句子”,看起来更完整。 你推荐哪一个? 也可能是本地化资源string中的问题。 很明显,你不能在所有事情之后放置一段时间(在button和菜单项上的文本之后的周期看上去很奇怪)。 但是,你是否应该把所有的时间都放在一致的地方,然后在有用的地方添加它? 或者你宁愿放一个看起来合适的时期? 例如,在所有的资源string和exception消息是句子之后,而不是在那些单词之后。 但是,那么短句怎么样呢? 比如“创build一个新文件”。 也许可以省略那些被认为是行动的string…(只是想在我在这里打字… 不是世界上最重要的事情,我知道。 但是像这样的小事在一段时间之后往往会让我烦恼。 我喜欢一致性,并知道为什么我要做我所做的事情。 问题是我不确定哪一个要去:p

开始使用SSE

我想了解更多关于使用SSE的信息 。 除了显而易见的英特尔®64和IA-32架构软件开发人员手册之外,还有什么方法可以学习? 主要是我有兴趣使用GCC X86内置函数 。

主要参考“Microsoft.CSharp”是一个框架程序集,在当前的目标框架中无法解决

我开始了一个新的winforms项目,相当简单,有几个标签,文本框和一个button。 所有的代码运行良好。 我忘记将框架版本从4(使用VS 2010)更改为3.5,然后再创build应用程序,并将其更改为3.5或3.5客户端configuration文件时,出现以下警告: 主要参考“Microsoft.CSharp”是一个框架程序集,在当前的目标框架中无法解决。 ” .NETFramework,版本= V3.5" 。 要解决此问题,请删除引用“Microsoft.CSharp”或将应用程序redirect到包含“Microsoft.CSharp”的框架版本。 从一开始就用3.5的设置来重新创build这个并不是一个很大的麻烦,我相当确定我没有使用我需要的4框架中的任何东西。

静态类的静态方法与非静态类的静态方法(C#)

在接受采访时我被问到了上述问题。 你能解释一下这个区别吗? (性能 – 内存 – 使用情况 – 何时使用?) 谢谢, 二崁

使用AsParallel()/ Parellel.ForEach()指导方针?

寻求一些利用AsParallel()或者Parallel.ForEach()来加快速度的build议。 见下面的方法(这个例子简化/混蛋)。 它需要一个像“美国,法国,亚太地区”这样的名单,其中“亚太地区”可能是另外50个“美国,法国,日本,美国,英国等等”的别名。 方法应采取“美国,法国,亚太地区”,并将其转换为“美国”,“法国”,以及所有“亚太地区”国家的名单。 private IEnumerable<string> Countries (string[] countriesAndAliases) { var countries = new List<string>(); foreach (var countryOrAlias in countriesAndAliases) { if (IsCountryNotAlias(countryOrAlias)) { countries.Add(countryOrAlias); } else { foreach (var aliasCountry in AliasCountryLists[countryOrAlias]) { countries.Add(aliasCountry); } } } return countries.Distinct(); } 是不是把这个并行化就像把它改变成下面那样简单? 使用AsParallel()比这更多的细微差别? 我应该使用Parallel.ForEach()而不是foreach ? 并行化foreach循环时应使用什么经验法则? private IEnumerable<string> Countries (string[] countriesAndAliases) { var countries = […]

将Objective-C指针types'NSString *'转换为C指针types'CFStringRef'(又名'const struct __CFString *')需要一个桥接转换

将Objective-C程序转换为Objective-C ARC时,出现以下错误: "cast of Objective-C pointer type 'NSString *' to C pointer type 'CFStringRef' (aka 'const struct __CFString *') requires a bridged cast " 代码如下: – (NSString *)_encodeString:(NSString *)string { NSString *result = (NSString *)CFURLCreateStringByAddingPercentEscapes(NULL, (CFStringRef)string, // this is line in error NULL, (CFStringRef)@";/?:@&=$+{}<>,", kCFStringEncodingUTF8); return [result autorelease]; } 什么是桥接演员?

在C / C ++中获得正模的最快方法

通常在我的内部循环中,我需要以“环绕”方式对数组进行索引,以便如果数组大小为100,并且代码要求元素-2,则应该给出元素98.在许多高级语言中作为Python,可以简单地用my_array[index % array_size]来做到这一点,但由于某些原因,C的整数算术(通常)向零舍入,而不是一直向下舍入,因此,其模运算符在给定负的第一个参数时返回负结果。 通常我知道index不会小于-array_size ,在这种情况下,我只是做my_array[(index + array_size) % array_size] 。 但是,有时这是不能保证的,对于这些情况,我想知道实现总是正模的function的最快方法。 有几个“聪明”的方式来做到这一点没有分支,如 inline int positive_modulo(int i, int n) { return (n + (i % n)) % n } 要么 inline int positive_modulo(int i, int n) { return (i % n) + (n * (i < 0)) } 当然,我可以通过这些来找出哪些是我的系统中速度最快的,但是我不禁担心我可能错过了一个更好的,或者我的机器上的速度可能会变慢。 那么有没有一个标准的方法来做到这一点,或者我错过了一个聪明的把戏,这可能是最快的方法? 另外,我知道这可能是一厢情愿的想法,但是如果有这样一种可以自动vector化的方法,那将是惊人的。

为什么这个转换工作没有转到?

对于这个程序: class Program { static void Main(string[] args) { var state = States.One; switch (state) { case States.One: Console.WriteLine("One"); break; case States.Zero: goto case States.One; } } } public enum States : ulong { Zero = 0, One = 1, } 我有: “开关expression式或案例标签必须是布尔型,字符型,string型,整型,枚举型或对应的可空types” 但statevariables是enumtypes。 如果我评论goto case行,错误消失。 我正在使用VS 2013. + .NET 4.5.1。

C ++ std :: ref(T)与T&的区别

我有关于这个程序的一些问题: #include <iostream> #include <type_traits> #include <functional> using namespace std; template <typename T> void foo ( T x ) { auto r=ref(x); cout<<boolalpha; cout<<is_same<T&,decltype(r)>::value; } int main() { int x=5; foo (x); return 0; } 输出是: false 我想知道,如果std::ref没有返回一个对象的引用,那么它是做什么的? 基本上有什么区别: T x; auto r = ref(x); 和 T x; T &y = x; 另外,我想知道为什么这种差异存在? 当我们有引用(即T& )时,为什么我们需要std::ref或std::reference_wrapper […]