Tag: C#的

在switch语句中声明variables

我看到了这个问题的一些答案,我明白了 – 你不能在switch声明和分配variables。 但我想知道是否以下是正确的抛出一个错误说 错误:在'int'之前的期望expression式 码: switch (i) { case 0: int j = 1; break; } 为什么会在不导致错误之前调用NSLog()呢? switch (i) { case 0: NSLog(@"wtf"); int j = 1; break; }

使用gcc命令行从.c文件生成.so文件

我正在尝试为Linuxdynamic库(.so文件)创build一个hello世界项目。 所以我有一个文件hello.c: #include <stdio.h> void hello() { printf("Hello world!\n"); } 如何使用命令行中的gcc创build一个导出hello()的.so文件?

从C中的函数返回一个`struct`

今天,我正在教几个朋友如何使用C struct 。 其中一个人问你是否可以从一个函数返回一个struct ,我回答说:“不!你会返回指向dynamicmalloc struct的指针。” 来自主要从事C ++的人,我期望不能通过值返回struct 。 在C ++中,你可以为你的对象重载operator = ,并且有一个函数根据值返回你的对象。 但是,在C中,你没有这个选项,所以它让我思考编译器实际上在做什么。 考虑以下: struct MyObj{ double x, y; }; struct MyObj foo(){ struct MyObj a; ax = 10; ay = 10; return a; } int main () { struct MyObj a; a = foo(); // This DOES work struct b = a; // […]

3个长整数的平均值

我有3个非常大的有符号整数。 long x = long.MaxValue; long y = long.MaxValue – 1; long z = long.MaxValue – 2; 我想计算他们截断的平均值。 期望的平均值是long.MaxValue – 1 ,这是9223372036854775806 。 计算它是不可能的: long avg = (x + y + z) / 3; // 3074457345618258600 注意:我读了所有关于2个数字平均值的问题,但是我不明白这个技术如何应用​​于3个数字的平均值。 使用BigInteger会很容易,但我们假设我不能使用它。 BigInteger bx = new BigInteger(x); BigInteger by = new BigInteger(y); BigInteger bz = new BigInteger(z); BigInteger bavg […]

C#应用程序是否跟踪运行多久?

如果是这样,有一个简单的方法来获得自从它开始以来的总时间?

在C#中使用一个ForEach语句迭代两个List或Arrays

这只是一般的知识: 如果我有两个,让我们说, 列表 ,我想迭代两个相同的foreach循环,我们可以做到这一点? 编辑 为了澄清,我想这样做: List<String> listA = new List<string> { "string", "string" }; List<String> listB = new List<string> { "string", "string" }; for(int i = 0; i < listA.Count; i++) listB[i] = listA[i]; 但是用foreach =)

LINQexpression式中的String.IsNullOrWhiteSpace

我有以下代码: return this.ObjectContext.BranchCostDetails.Where( b => b.TarrifId == tariffId && b.Diameter == diameter || (b.TarrifId==tariffId && !string.IsNullOrWhiteSpace(b.Diameter)) || (!b.TarrifId.HasValue) && b.Diameter==diameter); 当我尝试运行代码时,出现此错误: LINQ to Entities不识别方法'布尔IsNullOrWhiteSpace(System.String)'方法,并且此方法不能被转换成存储expression式。 我怎样才能解决这个问题,编写比这更好的代码呢?

避免不带参数的SQL注入

在这里我们正在讨论在我们的代码中使用参数化的sql查询。 我们有两方面的讨论:我和其他一些人说,我们应该总是使用参数来防止SQL注入和其他人认为这是不必要的。 相反,他们想要用所有string中的两个撇号replace单撇号来避免sql注入。 我们的数据库都运行Sql Server 2005或2008,我们的代码库运行在.NET框架2.0上。 让我给你一个简单的例子在C#中: 我希望我们使用这个: string sql = "SELECT * FROM Users WHERE Name=@name"; SqlCommand getUser = new SqlCommand(sql, connection); getUser.Parameters.AddWithValue("@name", userName); //… blabla – do something here, this is safe 而其他人想要这样做: string sql = "SELECT * FROM Users WHERE Name=" + SafeDBString(name); SqlCommand getUser = new SqlCommand(sql, connection); //… blabla – […]

如何在Web API消息处理程序中提取自定义标题值?

我目前有一个消息处理程序在我的Web API服务,覆盖“SendAsync”,如下所示: protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) { //implementation } 在这个代码中,我需要检查一个名为MyCustomID的自定义添加请求标头值。 问题是,当我做到以下几点: if (request.Headers.Contains("MyCustomID")) //OK var id = request.Headers["MyCustomID"]; //build error – not OK …我收到以下错误信息: 无法将[]的索引应用于types为“System.Net.Http.Headers.HttpRequestHeaders”的expression式 如何通过传入此重写方法的HttpRequestMessage ( MSDN文档 )实例访问单个自定义请求标头?

即使构build项目,Visual Studio也会显示错误

我在C#解决scheme上遇到了Visual Studio 2013的问题。 它显示完全随机的错误,但项目build立。 目前,我有33个文件有错误,我可以看到所有这些文件中的红色波浪线。 我试图清理/重build解决scheme,closuresVisual Studio,甚至重新启动我的电脑。 我也确保在Visual Studio中执行debugging运行中描述的步骤, 即使是编译器错误 。 我可以修改.cs文件,并看到解决scheme中的更改。 有没有人有一个关于为什么这样做的想法?