Tag: C#的

将指针转换为整数

我正试图将现有的代码调整到64位机器。 主要的问题是,在一个函数中,前面的编码器使用一个void *参数,它在函数本身中被转换成合适的types。 一个简短的例子: void function(MESSAGE_ID id, void* param) { if(id == FOO) { int real_param = (int)param; // … } } 当然,在64位机器上,我得到的错误是: error: cast from 'void*' to 'int' loses precision 我想纠正这个问题,使它仍然在32位机器上工作,尽可能干净。 任何想法 ?

铸造VS转换对象toString,当对象真的是一个string

这不是一个真正的问题,但我很好奇。 当我保存一个string让我们说一个DataRow,它被转换为对象。 当我想使用它时,我必须将其转换为ToString。 据我所知有几种方法做到这一点,首先是 string name = (string)DataRowObject["name"]; //valid since I know it's a string 另一个是: string name = DataRowObject["name"].ToString(); 我感兴趣两者之间有什么区别? 第一个更有效率? (这只是一个猜测,在我头上的ToString()方法是通过一些循环机制来实现的,在这种循环机制中,只需要将其转换为“可以”更快,但是这只是我的“直觉”)。 有没有更快/更优雅的方式呢? 任何人都可以为我清除这个?

我可以使用数组或其他可变数量的参数初始化C#属性吗?

是否有可能创build一个可以使用可变数量的参数进行初始化的属性? 例如: [MyCustomAttribute(new int[3,4,5])] // this doesn't work public MyClass …

如何在全球范围内告诉Json.Net将StringEnumConverter应用于所有的枚举

我想通过json.net将枚举反序列化为string表示,反之亦然。 我可以弄清楚告诉框架应用其StringEnumConverter的唯一方法是注释这样的属性: [JsonConverter(typeof(StringEnumConverter))] public virtual MyEnums MyEnum { get; set; } 然而,在我的使用情况下,全局configurationjson.net会更方便,因此所有枚举都可以使用StringEnumConverter序列化,而不需要额外的注释。 有没有办法这样做,例如在自定义JsonSerializerSettings的帮助下?

“给定path的格式不被支持。”

我在Web服务上提供了以下代码行: string str_uploadpath = Server.MapPath("/UploadBucket/Raw/"); FileStream objfilestream = new FileStream(str_uploadpath + fileName, FileMode.Create, FileAccess.ReadWrite); 有人可以帮我解决这个错误信息从第二行的代码。 给定path的格式不被支持。 文件夹上的权限设置为完全访问所有人,这是文件夹的实际path。 断点给了我str_uploadpath值为C:\\webprojects\\webservices\\UploadBucket\\Raw\\ 。 这个string有什么问题,我看不到。

linq列表中包含任何列表

使用LINQ,我怎样才能检索它的属性列表匹配另一个列表的项目列表? 拿这个简单的例子和​​伪代码: List<Genres> listofGenres = new List<Genre>() { "action", "comedy" }); var movies = _db.Movies.Where(p => p.Genres.Any() in listofGenres);

数组中的string?

查看string[]以查看它是否包含元素的最佳方法是什么? 这是我的第一枪。 但也许有些东西是我忽略的。 数组大小不会超过200个元素。 bool isStringInArray(string[] strArray, string key) { for (int i = 0; i <= strArray.Length – 1; i++) if (strArray[i].ToString() == key) return true; return false; }

如何将新行添加到txt文件

我想添加新的文本行到我的date.txt文件,而不是将其添加到现有的date.txt,应用程序正在创build新的date.txt文件.. TextWriter tw = new StreamWriter("date.txt"); // write a line of text to the file tw.WriteLine(DateTime.Now); // close the stream tw.Close(); 我想打开txt文件,添加一些文本,closures它,然后点击一些东西后:打开date.txt,添加文本,并再次closures它。 所以我可以得到: 按下button:txt打开 – >添加当前时间,然后closures它。 按下另一个button,txt打开 – >在同一行添加文本“OK”或“NOT OK”,然后再closures它。 所以我的txt文件看起来像这样: 2011-11-24 10:00:00 OK 2011-11-25 11:00:00 NOT OK 我怎样才能做到这一点? 谢谢!

从path获取文件夹名称

string path = "C:/folder1/folder2/file.txt"; 我可以使用什么对象或方法,给我一个folder2的结果?

我如何使一个combobox在.NET中不可编辑?

我想有一个“只select” ComboBox ,提供用户select的项目列表。 在ComboBox控件的文本部分应该禁用键入。 我最初的search结果导致了一个非常复杂的错误的build议,以捕捉KeyPress事件。