Tag: C#的

我怎样才能“不使用”一个命名空间?

我的开发系统(Codegear C ++ Builder)的一个变幻莫测的是,一些自动生成的头坚持有… using namespace xyzzy …在他们的声明,这至less会影响我的代码。 有没有办法,我可以取消/重写以前的“使用”语句,以避免这种情况。 也许… unusing namespace xyzzy;

你如何在C中实现一个循环缓冲区?

我需要一个固定的大小(创build时可以在运行时select,而不是编译时)可以容纳任何types的对象的循环缓冲区,它需要非常高的性能。 我不认为会有资源争夺问题,因为虽然它是在一个多任务embedded式环境中,但它是一个合作的环境,所以任务本身可以pipe理这个问题。 我最初的想法是存储一个简单的结构在缓冲区中将包含types(简单的枚举/定义)和一个无效的指针有效载荷,但我希望这是尽可能快,所以我打开的build议,涉及绕过堆。 其实我很高兴绕过任何标准库的原始速度 – 从我所看到的代码,它没有严格优化的CPU:它看起来像他们只是编译C代码的东西,如strcpy()等,没有手工编码的组件。 任何代码或想法将不胜感激。 所需的操作是: 创build一个特定大小的缓冲区。 放在尾部。 从头开始。 返回计数。 删除一个缓冲区。

如何在ASP.Net中发送状态码500并仍写入响应?

我有一个ASP.Net单文件Web服务(一个包含IHttpHandler实现的.ashx文件),需要能够以500个内部服务器错误状态代码作为响应返回错误。 在PHP中这是一个相对简单的事情: header("HTTP/1.1 500 Internal Server Error"); header("Content-Type: text/plain"); echo "Unable to connect to database on $dbHost"; ASP.Net(C#)等价物应该是: Context.Response.StatusCode = (int)HttpStatusCode.InternalServerError; Context.Response.ContentType = "text/plain"; Context.Response.Write("Unable to connect to database on " + dbHost); 当然,这并不像预期的那样工作。 相反,IIS拦截了500个状态码,将我写到Response对象的任何东西都刷新,并根据应用程序的configuration发送debugging信息或自定义错误页面。 我的问题 – 我怎么能抑制这种IIS行为,并直接从我的IHttpHandler实施发送错误信息? 这个应用程序是从PHP端口; 客户端已经写了,所以我基本上坚持这个规范。 用200状态码发送错误很遗憾,不适合模具。 理想情况下,我需要以编程方式控制行为,因为这是我们想要分发的SDK的一部分,而不需要任何“ 编辑此文件 ”和“ 更改此IIS设置 ”的补充说明。 谢谢! 编辑 :sorting。 Context.Response.TrySkipIisCustomErrors = true是票据。 哇。

C# – 不能隐式地将List <Product>转换为List <IProduct>

我有我所有的接口定义项目:RivWorks.Interfaces 我有一个项目,我定义了具体的实践:RivWorks.DTO 我已经做了几百次之前,但由于某种原因,我现在得到这个错误: 不能将types'System.Collections.Generic.List <RivWorks.DTO.Product>'隐式转换为'System.Collections.Generic.List <RivWorks.Interfaces.DataContracts.IProduct>' 接口定义(缩写): namespace RivWorks.Interfaces.DataContracts { public interface IProduct { [XmlElement] [DataMember(Name = "ID", Order = 0)] Guid ProductID { get; set; } [XmlElement] [DataMember(Name = "altID", Order = 1)] long alternateProductID { get; set; } [XmlElement] [DataMember(Name = "CompanyId", Order = 2)] Guid CompanyId { get; set; } … } […]

链接器返回“重定位在符号索引处具有无效符号…”

我正在尝试在Ubuntu上的一些代码。 我试图运行下面的代码 #include <cstdlib> #include <cmath> #include <ctime> #include "random.h" using namespace std; /* Function prototype! */ void initRandomSeed(); int randomInteger(int low,int high){ initRandomSeed(); double d= rand()/(double(RAND_MAX)+1); double s= d*(double(high)-low+1); return int(floor(low)+s); } double randomReal(int low,int high){ initRandomSeed(); double d=rand()/(double(RAND_MAX)+1); double s=d*(double(high)-low+1); return low+s; } bool randomChance(double p){ initRandomSeed(); return randomReal(0,1)<p; } void setRandomSeed(int seed){ […]

TryParse与出var参数

C#6.0中的新特性允许在TryParse方法中声明variables。 我有一些代码: string s = "Hello"; if (int.TryParse(s, out var result)) { } 但是我收到编译错误: 我做错了什么? PS:在项目设置中设置C#6.0和.NET框架4.6。

当两个string可以互换时,如何为两个string的结构实现GetHashCode

我在C#中有一个结构: public struct UserInfo { public string str1 { get; set; } public string str2 { get; set; } } UserInfo(str1="AA", str2="BB").Equals(UserInfo(str1="BB", str2="AA")) 如何重写此结构的GetHashCode函数?

应该结构定义进入.h或.c文件?

我已经在头文件中看到了struct的完整定义,只是声明 – 对另一个方法有没有优势? 如果它有所作为,我通常在.h键入一个像这样的结构 typedef struct s s_t; 编辑 要清楚的是,这些选项是头文件中的声明和类中的定义,或者头文件中的声明和定义。 两者应该导致相同的可用性,即使是通过链接,不是吗? 我看到许多几乎重复,例如在这里,但没有完全匹配。 请纠正我,如果我在这方面的错误。

声明一个没有const的C风格的string是不好的? 如果是这样,为什么?

在C ++中执行此操作 char* cool = "cool"; 编译好,但给我一个警告: 不赞成将string常量转换为char *。 我永远不会故意使用C风格的string而不是std::string ,但是万一我被问到这个问题: 声明一个没有const修饰符的C风格的string是不好的做法? 如果是这样,为什么?

是否有Queryable.SelectMany()方法的C#LINQ语法?

当使用C#LINQ语法编写查询时,是否有一种方法可以使用关键字语法中的Queryable.SelectMany方法? 对于 string[] text = { "Albert was here", "Burke slept late", "Connor is happy" }; 使用stream利的方法,我可以查询 var tokens = text.SelectMany(s => s.Split(' ')); 是否有类似于的查询语法? var tokens = from x in text selectmany s.Split(' ')