Tag: C#的

uint8_t,uint_fast8_t和uint_least8_t之间的区别

C99标准引入了以下数据types。 文档可以在这里findAVR stdint库。 uint8_t表示这是一个8位无符号types。 uint_fast8_t意味着它是至less有8位的最快的unsigned int。 uint_least8_t表示它是一个至less有8位的无符号整数。 我理解uint8_t和什么是uint_fast8_t (我不知道它是如何实现的寄存器级别)。 你能解释“这是一个至less有8位的unsigned int ”的含义吗? 2.与uint8_t相比, uint_fast8_t和uint_least8_t帮助提高效率/代码空间?

inheritance一个通用的基类,应用一个约束,并在C#中实现一个接口

这是一个语法问题。 我有一个通用的类inheritance自一个通用的基类,并正在对其中一个types参数应用约束。 我也希望派生类实现一个接口。 对于我的生活,我似乎无法弄清楚正确的语法。 这是我的: DerivedFoo<T1,T2> : ParentFoo<T1, T2> where T2 : IBar { … } 首先想到的是这样的: DerivedFoo<T1,T2> : ParentFoo<T1, T2> where T2 : IBar, IFoo { … } 但这是不正确的,因为这导致T2需要实现IBar和IFoo,而不是DerivedFoo来实现IFoo。 我尝试了一些谷歌search,使用冒号,分号等,但我已经缩短了。 我相信答案是头脑简单。

检查一个string是否是有效的Windows目录(文件夹)path

我试图确定一个用户input的string是否有效表示一个文件夹的path。 有效的,我的意思是格式正确。 在我的应用程序中,该文件夹代表安装目标。 假设文件夹path是有效的,我想确定文件夹是否存在,如果不存在,就创build它。 我目前使用IO.Directory.Exists( String path ) 。 我发现这工作正常,除非用户不正确格式化string。 发生这种情况时,此方法将返回false,表示该文件夹不存在。 但这是一个问题,因为我以后无法创build文件夹。 从我的谷歌search,我发现了一个build议,使用正则expression式来检查格式是否正确。 我没有正则expression式的经验,我想知道这是否是一个可行的方法。 这是我发现的: Regex r = new Regex( @"^(([a-zA-Z]\:)|(\\))(\\{1}|((\\{1})[^\\]([^/:*?<>""|]*))+)$" ); return r.IsMatch( path ); 将正则expression式testing与Directory.Exists()结合起来,给我一个足够好的方法来检查path是否有效,是否存在? 我知道这将随着操作系统和其他因素而变化,但该程序仅针对Windows用户。

sscanf或atoi将string转换为整数有什么区别?

gcc 4.4.4 c89 将string转换为整数值更好。 我已经尝试了2种不同的方法atoi和sscanf。 两者都按预期工作。 char digits[3] = "34"; int device_num = 0; if(sscanf(digits, "%d", &device_num) == EOF) { fprintf(stderr, "WARNING: Incorrect value for device\n"); return FALSE; } 或使用atoi device_num = atoi(digits); 我以为sscanf会更好,因为你可以检查错误。 但是,atoi没有做任何检查。

我怎样才能过滤使用LINQ的字典,并将其返回到相同types的字典

我有以下字典: Dictionary<int,string> dic = new Dictionary<int,string>(); dic[1] = "A"; dic[2] = "B"; 我想过滤字典的项目,并将结果重新分配给相同的variables: dic = dic.Where (p => p.Key == 1); 我怎样才能返回结果作为一个字典从相同的types[ <int,string> ]? 我尝试过ToDictionary ,但它不起作用。 提前致谢。

如何在C中抛出exception?

我input这个谷歌,但只发现在C ++ howtos, 如何在C中做到这一点?

通过类的reflection属性获取,而不是从inheritance类获取

class Parent { public string A { get; set; } } class Child : Parent { public string B { get; set; } } 我只需要得到财产乙,没有财产甲但是 Child.GetProperties(System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance) 返回两个属性:/

通用types检查

有没有办法强制/限制传递给基元的types? (bool,int,string等) 现在,我知道你可以通过where子句将genericstypes参数限制为types或接口实现。 然而,这不符合基本法(AFAIK)的法案,因为它们并不都有共同之处(除了有人说的对象之前!:P)。 所以,我目前的想法是只是咬紧牙关,做一个大的switch语句,并抛出一个ArgumentException失败.. 编辑1: 只是为了澄清: 代码定义应该是这样的: public class MyClass<GenericType> …. 并实例化: MyClass<bool> = new MyClass<bool>(); // Legal MyClass<string> = new MyClass<string>(); // Legal MyClass<DataSet> = new MyClass<DataSet>(); // Illegal MyClass<RobsFunkyHat> = new MyClass<RobsFunkyHat>(); // Illegal (but looks awesome!) 编辑2 @Jon Limjap – 好点,和我已经考虑的东西..我敢肯定有一个通用的方法,可以用来确定types是一个值或引用types.. 这可能会立即删除很多我不想处理的对象(但是你需要担心使用的结构,如大小 )有用的..有趣的问题没有? 🙂 这里是: where T : struct 取自MSDN 。 […]

使用错误顺序sorting的指令

我在Visual Studio 2012中使用了Power Commands扩展。我选中了删除和sorting保存选项。 问题在于System.Xxx指令最后被sorting,导致一个样式分析错误: SA1208:系统使用指令必须放在所有其他使用指令之前。 保存之前: using System; using System.Diagnostics.CodeAnalysis; using Foo; 保存后: using Foo; using System; using System.Diagnostics.CodeAnalysis; 这与VS 2010正常工作(System.Xxx第一)任何人都知道如何解决这个问题? 注意:即使它没有导致SA错误,我仍然首选系统指令。

在C ++中是++ x%= 10吗?

在浏览某个项目的代码时,我碰到以下声明: ++x %= 10; 这个陈述是否在C ++中有明确的定义,还是属于与C ++相同的类别 a[i] = i++ ?