小编Sta*_*nov的帖子

我应该为流对象调用Close()或Dispose()吗?

类如Stream,StreamReader,StreamWriter等工具IDisposable界面.这意味着,我们可以Dispose()在这些类的对象上调用方法.他们还定义了一个public名为的方法Close().现在让我感到困惑的是,一旦我完成了对象,我该怎么称呼?如果我同时打电话怎么办?

我目前的代码是这样的:

using (Stream responseStream = response.GetResponseStream())
{
   using (StreamReader reader = new StreamReader(responseStream))
   {
      using (StreamWriter writer = new StreamWriter(filename))
      {
         int chunkSize = 1024;
         while (!reader.EndOfStream)
         {
            char[] buffer = new char[chunkSize];
            int count = reader.Read(buffer, 0, chunkSize);
            if (count != 0)
            {
               writer.Write(buffer, 0, count);
            }
         }
         writer.Close();
      }
      reader.Close();
   }
}
Run Code Online (Sandbox Code Playgroud)

如您所见,我编写了using()构造,自动调用Dispose()每个对象的方法.但我也称之为Close()方法.这样对吗?

请告诉我使用流对象时的最佳做法.:-)

MSDN示例不使用using()构造,并且调用 …

c# idisposable stream streamwriter streamreader

139
推荐指数
6
解决办法
12万
查看次数

如何启动/停止IISExpress服务器?

我安装了MS Visual Web Developer 2010,其中包括iisexpress.

在此之前,我已经为我的php应用程序安装了xampp服务器.

我想知道为了能够启动xampp我怎么能阻止iis?它们似乎使用相同的端口.我想这些可以改变,但我不想干涉其他程序,而且我认为这应该更简单.

谢谢!

visual-web-developer iis-express

44
推荐指数
3
解决办法
11万
查看次数

我无法让Sql Server localdb连接在没有安装SqlServer Express的计算机上工作

我有一个使用Visual Studio 2012编写的C#控制台应用程序.在应用程序中,我使用Sql Server localdb连接到数据库来存储信息.这在几台计算机上运行正常,所有计算机都安装了Visual Studio.

我想部署一个只需要安装Sql Server Express LocalDB的程序,而不是更大的Sql Server Express.但是,我的应用程序未在目标计算机上运行.我在目标计算机上安装了Sql Server Express LocalDB 2014.我可以使用命令行使用sqllocaldb运行命令来验证它是否已安装并正在运行.

C:\Users\someuser\Desktop\Debug>sqllocaldb v
Microsoft SQL Server 2014 (12.0.2000.8)`
Run Code Online (Sandbox Code Playgroud)

但是,当我在同一台目标计算机上运行我的应用程序时,出现以下错误.

C:\ Users\someuser\Desktop\Debug> Testing_Console
11:21:07,912 [1] INFO TestingConsole.Program - 当前目录是C:\ Users\someuser\Desktop\Debug
Extra Info:(null)


未处理的异常:System.Data .SqlClient.SqlException:建立与SQL Server的连接时发生与网络相关或特定于实例的错误.服务器未找到或无法访问.验证实例名称是否正确,以及SQL Server是否配置为允许远程连接.(提供程序:SQL网络接口,错误:50 - 发生本地数据库运行时错误.无法创建自动实例.请参阅Windows应用程序事件日志以获取错误详细信息.

以下是我的app.config文件的开头,我在其中定义连接字符串.我已经尝试将直接文件路径放入LM文件,但这并没有解决问题.然而,这是预期的,因为该程序可以在安装了Visual Studio的计算机上的任何目录中运行.

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
  </configSections>
  <connectionStrings>
    <add name="KomoLM_Console.Properties.Settings.LMConnectionString"
      providerName="System.Data.SqlClient"
      connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\LM.mdf;Integrated Security=True;MultipleActiveResultSets=True"
 />
  </connectionStrings>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
  </startup>
Run Code Online (Sandbox Code Playgroud)

我不知道这个问题是否只与安装了SQL Server Express LocalDB 2014有关.谁能告诉我我的问题可能是什么?

c# sql-server localdb visual-studio-2012 sql-server-2014-express

24
推荐指数
2
解决办法
4万
查看次数

为什么显式接口实现以这种方式工作?

为什么该程序打印“子名称”而不是“基本名称”?

using System;

class Program
{
    static void Main(string[] args)
    {
        var child = new Child();
        Console.WriteLine(((INamedObject)child).Name);
        Console.ReadLine();
    }
}

interface INamedObject
{
    string Name { get; }
}

class Base : INamedObject
{
    string INamedObject.Name
    {
       get
       {
         return "Base Name";
       }
    }
}

class Child : Base, INamedObject
{
   public string Name
   {
      get
      {
         return "Child Name";
      }
   }
}
Run Code Online (Sandbox Code Playgroud)

我希望当我将子类型转换INamedObject时,将调用INamedObject显式实现的Name属性。但是会发生什么,就是调用了Child.Name属性。

为什么当我这样声明Child类时(从Child中删除INamedObject):

class Child : …
Run Code Online (Sandbox Code Playgroud)

.net c# interface

6
推荐指数
1
解决办法
181
查看次数

如何访问基于列表的DataFrame中的某些列?

我创建了一个DataFrame:

import pandas as pd
import random
data = [[random.uniform(0, 1), random.uniform(0, 1), random.uniform(0, 1), random.uniform(0, 1), random.uniform(0, 1)], [random.uniform(0, 1), random.uniform(0, 1), random.uniform(0, 1), random.uniform(0, 1), random.uniform(0, 1)], [random.uniform(0, 1), random.uniform(0, 1),random.uniform(0, 1),random.uniform(0, 1),random.uniform(0, 1)], [random.uniform(0, 1), random.uniform(0, 1), random.uniform(0, 1), random.uniform(0, 1), random.uniform(0, 1)], [random.uniform(0, 1), random.uniform(0, 1), random.uniform(0, 1), random.uniform(0, 1), random.uniform(0, 1)], [random.uniform(0, 1), random.uniform(0, 1),random.uniform(0, 1),random.uniform(0, 1),random.uniform(0, 1)]]
df= pd.DataFrame(data, columns=["A","B", "C", "D", "E"])
Run Code Online (Sandbox Code Playgroud)

DataFrame看起来像这样:

          A         B         C         D         E
0  0.736739  0.184075  0.727951  0.173798 …
Run Code Online (Sandbox Code Playgroud)

list multiple-columns dataframe python-3.x pandas

1
推荐指数
1
解决办法
53
查看次数