Tag: C#的

.NET HttpClient。 如何POSTstring值?

我如何创build使用C#和HttpClient下面的POST请求: 我需要这样一个请求我的WEB API服务: [ActionName("exist")] [System.Web.Mvc.HttpPost] public bool CheckIfUserExist([FromBody] string login) { bool result = _membershipProvider.CheckIfExist(login); return result; }

我什么时候可以使用Task.Yield()?

我使用asynchronous/等待和Task很多,但从来没有使用Task.Yield() ,说实话,即使所有的解释,我不明白为什么我会需要这种方法。 有人可以给出一个很好的例子, Yield()是必需的吗?

IEnumerable嵌套的收益率返回

我有以下function来获取卡的validation错误。 我的问题涉及到处理GetErrors。 两种方法都有相同的返回typesIEnumerable<ErrorInfo> 。 private static IEnumerable<ErrorInfo> GetErrors(Card card) { var errors = GetMoreErrors(card); foreach (var e in errors) yield return e; // further yield returns for more validation errors } 是否有可能返回在GetMoreErrors所有错误,而不必通过他们枚举? 思考这可能是一个愚蠢的问题,但我想确保我不会出错。

使用类成员的智能指针

我无法理解智能指针在C ++ 11中作为类成员的用法。 我读了很多关于智能指针的信息,我想我明白unique_ptr和shared_ptr / weak_ptr如何工作的。 我不明白的是真正的用法。 似乎每个人都推荐使用unique_ptr作为几乎所有的时间。 但是,我将如何实现这样的东西: class Device { }; class Settings { Device *device; public: Settings(Device *device) { this->device = device; } Device *getDevice() { return device; } }; int main() { Device *device = new Device(); Settings settings(device); // … Device *myDevice = settings.getDevice(); // do something with myDevice… } […]

在“释放”模式下的“堆栈跟踪”中显示.NET程序集的行号

有没有办法显示堆栈跟踪中的.NET程序集版本/部署在发行模式? 更新: 我的应用程序分为三个类库项目和一个ASP.NET“网站”项目。 我试图追查的错误是三个类库项目之一。 我只部署了生成“对象引用未设置为对象实例”错误的类库项目的pdb文件。 行号仍未显示在堆栈跟踪中。 我是否需要为所有项目部署pdb文件以获取堆栈跟踪中的行号? 工作解决scheme 为每个应用程序部署pdb文件修复了行号问题。

如何使用C ++ 11 using语法typedef函数指针?

我想写这个 typedef void (*FunctionPtr)(); 使用using 。 我该怎么做?

我应该在C ++中使用exception说明符吗?

在C ++中,您可以指定一个函数可以或不可以通过使用exception说明符来引发exception。 例如: void foo() throw(); // guaranteed not to throw an exception void bar() throw(int); // may throw an exception of type int void baz() throw(…); // may throw an exception of some unspecified type 我怀疑实际使用它们是因为以下原因: 编译器没有以任何严格的方式强制执行exception说明符,所以好处不大。 理想情况下,你想得到一个编译错误。 如果一个函数违反了一个exception说明符,我认为标准的行为是终止程序。 在VS.Net中,它将throw(X)视为throw(…),所以遵守标准并不强烈。 你认为应该使用exception说明符吗? 请回答“是”或“否”,并提供一些理由来certificate您的答案。

如何在Go中使用C ++?

在新的Go语言中,如何调用C ++代码? 换句话说,如何包装我的C ++类并在Go中使用它们?

types擦除技术

(对于types擦除,我的意思是隐藏部分或全部关于类的types信息,有点像Boost.Any 。) 我想得到一种types的删除技术,同时也分享这些,我知道的。 我希望find一些疯狂的技术,有人在最黑暗的时刻想到。 🙂 我所知道的第一个也是最明显也是最常用的方法是虚拟function。 只需在基于类的层次结构中隐藏类的实现即可。 许多Boost库都这样做,例如Boost.Any这样做是为了隐藏你的types,而Boost.Shared_ptr这样做是为了隐藏(de)分配机制。 然后有模板函数的函数指针的选项,同时将实际的对象保存在void*指针中,就像Boost.Function一样,可以隐藏函数的实际types。 示例实现可以在问题的最后find。 所以,对于我的实际问题: 你知道什么其他types的擦除技术? 如有可能,请提供示例代码,用例,与他们的经验以及可能的链接以供进一步阅读。 编辑 (因为我不确定这个答案是否会增加,或者只是编辑问题,我只会做更安全的问题。) 另一个很好的技术,隐藏实际types的东西, 没有虚函数或void*摆弄,是一个GMan在这里雇用,与我的问题是如何工作的。 示例代码: #include <iostream> #include <string> // NOTE: The class name indicates the underlying type erasure technique // this behaves like the Boost.Any type wrt implementation details class Any_Virtual{ struct holder_base{ virtual ~holder_base(){} virtual holder_base* clone() const = 0; […]

使用WPF / MVVM Light Toolkit处理窗口closures事件

我想处理窗口的“closures”事件(当用户点击右上angular的“X”button),以便最终显示确认消息或/并取消closures。 我知道如何在代码隐藏中做到这一点:订阅窗口的“closures”事件,然后使用“CancelEventArgs.Cancel”属性。 但是我正在使用MVVM,所以我不确定这是不错的方法。 我认为最好的办法是将Closing事件绑定到我的ViewModel中的Command中。 我试过了: <i:Interaction.Triggers> <i:EventTrigger EventName="Closing"> <cmd:EventToCommand Command="{Binding CloseCommand}" /> </i:EventTrigger> </i:Interaction.Triggers> 在ViewModel中有一个关联的RelayCommand,但它不起作用(该命令的代码没有执行)。