给定一个System.IO.FileStream对象,我怎样才能得到它提供访问文件的原始path? 例如,在下面的MyStreamHandler()函数中,我想找回创buildFileStream的文件的path: public static void Main() { string path = @"c:\temp\MyTest.txt"; FileStream fs = File.Create(path)); MyStreamHandler(fs); MyOtherStreamHandler(fs); fs.Close(); fs.Dispose(); } private static void MyStreamHandler(FileStream fs) { // Get the originating path of 'fs' } private static void MyOtherStreamHandler(FileStream fs) { }
如果我想要一个返回给定types的默认值,方法是generics的方法,我可以返回一个默认值,如下所示: public static T GetDefaultValue() { return default(T); } 如果我只有types作为System.Type对象,我可以做类似的事情吗? public static object GetDefaultValue(Type type) { //??? }
起初,我使用StreamReader从文件中读取文本: StreamReader reader = new StreamReader(dialog.OpenFile()); txtEditor.Text = reader.ReadToEnd(); 但发现了关于File.ReadAllText这似乎简化我的代码到1行。 两者有什么分别吗? 我应该什么时候使用一个? txtEditor.Text = File.ReadAllText(dialog.FileName);
我有一个自定义WriteLine(string)方法的对象。 像这样的东西: public void WriteLine(string text) { this.StringList.Add(text); } 用这种方法复制string.Format()的function最简单的方法是什么? 例如:我目前经常发现自己在做的是这样的: myObj.WriteLine(string.Format("Hello, {0}", name)); 如果你创build一个新的控制台应用程序,他们的WriteLine()方法的版本正是我所希望的: Console.WriteLine("Hello, {0}", name); 它们消除了调用string.Format()的需要。 以某种方式让你的方法容易接受? 或者我将不得不创build一千个方法重载? 像这样的东西: public void WriteLine() { … } public void WriteLine(string text) { … } public void WriteLine(string text, object arg0) { … } public void WriteLine(string text, object arg0, object arg1) { … } […]
以下是我们可以退出申请的方式: Enviroment.Exit(0) Application.Exit() Form.Close() 这三种方法有什么区别,什么时候使用每种方法?
我得到这个错误。 error: warning: incompatible implicit declaration of built-in function 'memcpy' [enabled by default] 这是代码: int arr[ 12] = {1,0,0,0,0,0,0,0,0,0,9370, 0}; void *a = &arr; memcpy(machine->mem, a,12*4); 我做错了什么?
有没有一种快速的方法来解压缩与WebClient.DownloadString()方法下载的gzip响应? 对于如何使用WebClient处理gzip响应,您有什么build议吗?
我有一个工厂,返回一个智能指针。 无论使用什么智能指针,我都无法让Google Mock嘲笑工厂方法。 模拟对象是所有方法都是虚拟的纯抽象接口的实现。 我有一个原型: MOCK_METHOD0(Create, std::unique_ptr<IMyObjectThing>()); 我得到: "…gmock/gmock-spec-builders.h(1314): error C2248: 'std::unique_ptr<_Ty>::unique_ptr' : cannot access private member declared in class 'std::unique_ptr<_Ty>'" 智能指针指向的types被定义。 而我得到它试图访问其中一个构造函数声明为private,但我不明白为什么。 当这是一个std :: auto_ptr,错误说没有复制构造函数,这使我困惑。 无论如何,有没有办法模拟一个方法,返回一个智能指针? 还是有更好的方法来build造一个工厂? 是我唯一的决心返回一个原始指针(blech …)? 我的环境是Visual Studio 2010 Ultimate和Windows 7.我没有使用CLI。
我想写一个简单的单行查询来从数据库中只select一个值。 所以,如果我为这个查询编写存储过程而不是在c#代码中编写简单的select查询,那么我相信这个简单的select查询的存储过程会更快,但为什么呢? 我很困惑与存储过程vs写在我的代码简单的查询? 我很困惑,为什么存储过程比直接写在代码中的简单的查询更快?
C ++标准库提供了std::equal_to 。 这个函数对象默认调用Ttypes的operator== 。 使用std::equal_to什么好处? 你能否提供一个std::equal_to有用的例子?