Tag: C#的

如何将字符转换为等效的System.Windows.Input.Key枚举值?

我想写这样的function, public System.Windows.Input.Key ResolveKey(char charToResolve) { // Code goes here, that resolves the charToResolve // in to the Key enumerated value // (For example with '.' as the character for Key.OemPeriod) } 我知道我可以写一个巨大的开关箱来匹配angular色,但是有没有其他方法? 与此有关的是Key枚举的string可能与字符不匹配,所以Enum.IsDefined将不起作用 有任何想法吗? 更新:这是在Windows环境中

C ++ 11:基于范围的语句:“range-init”生命周期?

在最新的C ++标准中暗示: for (foo : bar) baz; 等同于: { auto && r = bar; for ( auto it = r.begin(), end = r.end(); it != end; ++it ) { foo = *it; baz; } } 当上面的bar是一个函数调用返回一个集合,例如: vector<string> boo(); 即 for (auto bo : boo()) … 不行: auto&& r = boo(); … 因此,boo()的临时返回值在声明“auto && r = […]

SqlConnection SqlCommand SqlDataReader IDisposable

SqlConnection , SqlCommand和SqlDataReader都实现了IDisposable接口。 我阅读了最佳做法,始终将IDisposables换成using块。 所以,查询数据的常见情况看起来像这样(当然,在更大的背景下,像linq2sql这样的映射工具将是合适的,但是假设我们想在这里使用这种方法): using (SqlConnection cn = new SqlConnection("myConnectionstring")) { using (SqlCommand cm = new SqlCommand("myQuery", cn)) { // maybe add sql parameters using (SqlDataReader reader = cm.ExecuteReader()) { // read values from reader object return myReadValues; } } } 这是正确的方式还是可以被认为是矫枉过正? 我对using块的这种嵌套级别有些不确定,但是当然我想要正确的做法。 谢谢!

使用`std :: function <void(…)>`来调用非void函数

前一段时间我使用std::function非常像这样: std::function<void(int)> func = [](int i) -> int { return i; }; 基本上,我这样做是因为我想在std::function存储不同的函数对象,但我不想限制这些函数的返回types。 既然这似乎有效,我就跟着去了。 但我不相信这是安全的使用,我一直没能find任何文件。 有谁知道这个用法是否合法? 或者更一般地说,可以安全地分配给std::function的对象的规则是什么? 编辑 澄清,我关心的问题是lambda函数返回一个int ,而func声明返回types为void 。 我不确定这是否行,尤其是一旦调用func() 。

为什么这段代码试图调用复制构造函数?

我只是在Visual Studio中花费了大量的时间来处理错误。 我已经将代码提炼成了下面这个小的可编译的例子,并在IdeOne上试了一下,得到了同样的错误,你可以在这里看到。 我想知道为什么下面的代码尝试调用B(const B&)而不是B(B&&) : #include <iostream> using namespace std; class A { public: A() : data(53) { } A(A&& dying) : data(dying.data) { dying.data = 0; } int data; private: // not implemented, this is a noncopyable class A(const A&); A& operator=(const A&); }; class B : public A { }; int main() […]

模板类中模板成员函数的专门化

我有一个带模板成员函数的模板类 template<class T> class A { public: template<class CT> CT function(); }; 现在我想以两种方式专门化模板成员函数。 首先是与class级具有相同的types: template<class T> template<> // Line gcc gives an error for, see below T A<T>::function<T>() { return (T)0.0; } 第二种types布尔: template<class T> template<> bool A<T>::function<bool>() { return false; } 这是我如何testing它: int main() { A<double> a; bool b = a.function<bool>(); double d = […]

阅读文本文件的最后一行

我需要知道如何阅读文本文件的最后一行。 我需要find该行,然后将其处理成一个SQL数据库…我一直在阅读,并在网上冲浪,但正在争取find正确的方法来做到这一点。 即: find文件的最后一行。 处理文件的最后一行。 我希望这是有道理的。

如何翻译CultureInfo的语言名称

我知道有三种方法可以获得CultureInfo对象的完整语言名称。 CultureInfo.DisplayName CultureInfo.NativeName CultureInfo.EnglishName DisplayName以已安装的.net语言提供名称。 NativeName以“CultureInfos”语言提供名称。 英文名字的英文名字(令人惊讶的是…) 所以对于CultureInfo de-DE,这给(在英文.net安装上) 德语 德语 德语 现在我的问题是:有没有办法用另一种语言来请求DE DE的语言名称? 例如,我想要荷兰语中的de-DE的语言名称(这将是“Duits”)。

如何告诉stream利的NHibernate不要映射类属性

我有一个映射在stream利的nhibernate类,但我想要的一个类属性被映射忽略。 随着类和映射下面我得到这个错误: 以下types不能用作代理:iMasterengine.Data.Model.Calendar:method get_HasEvents应该是虚拟的 //my class public class Calendar : IEntity { public virtual int Id { get; private set; } public virtual string Name { get; set; } public virtual string SiteId { get; set; } public virtual IList<CalendarEvent> Events { get; set; } //ignore this property public bool HasEvents { get { return […]

在此上下文中仅支持基本types或枚举types

我在这个主题上看到了很多问题,但是我还没有能够通过其中的任何解决我所看到的问题的方法来sorting。 我有一个活动实体,跟踪哪个员工分配给哪个员工,以及哪个员工创buildlogging并进行更新。 如果我删除`where a.AssignedEmployee == currentUser'代码行,我不会在下面的运行时错误。 无法创buildtypes为“DataModels.Employee”的常量值。 在此上下文中仅支持基本types或枚举types。 CONTROLLER var query = from a in db.Activities where a.AssignedEmployee == currentUser where a.IsComplete == false orderby a.DueDate select a; return View(query.ToList()); 视图 @model IEnumerable<Data.DataModels.Activity> ……….