小编Pau*_*els的帖子

有C#IN运算符吗?

在SQL中,您可以使用以下语法:

SELECT *
FROM MY_TABLE
WHERE VALUE_1 IN (1, 2, 3)
Run Code Online (Sandbox Code Playgroud)

C#中有等价物吗?IDE似乎将"in"识别为关键字,但我似乎无法在其上找到任何信息.

那么,是否可以执行以下操作:

int myValue = 1;
if (myValue in (1, 2, 3))
    // Do something
Run Code Online (Sandbox Code Playgroud)

代替

int myValue = 1;
if (myValue == 1 || myValue == 2 || myValue == 3)
    // Do something
Run Code Online (Sandbox Code Playgroud)

c# sql operators in-operator

80
推荐指数
6
解决办法
7万
查看次数

C#通过NameValueCollection迭代

我有一个NameValueCollection,并希望迭代值.目前,我正在这样做,但似乎应该有一个更简洁的方法来做到这一点:

NameValueCollection nvc = new NameValueCollection();
nvc.Add("Test", "Val1");
nvc.Add("Test2", "Val1");
nvc.Add("Test2", "Val1");
nvc.Add("Test2", "Val2");
nvc.Add("Test3", "Val1");
nvc.Add("Test4", "Val4");

foreach (string s in nvc)
    foreach (string v in nvc.GetValues(s))
        Console.WriteLine("{0} {1}", s, v);

Console.ReadLine();
Run Code Online (Sandbox Code Playgroud)

在那儿?

c# collections namevaluecollection

71
推荐指数
2
解决办法
6万
查看次数

C#中的公共枚举

我有一个程序,其中包含一个包含公共枚举的类,如下所示:

public class Card
{
    public enum card_suits
    {
        Clubs,
        Hearts,
        Spades,
        Diamonds
    }
...
Run Code Online (Sandbox Code Playgroud)

我想在我的项目的其他地方使用它,但是如果不使用Card.card_suit就不能这样做.有谁知道C#中有没有办法声明这个,以便我能够声明

card_suits suit;
Run Code Online (Sandbox Code Playgroud)

没有引用它所在的类?

c# enums

61
推荐指数
3
解决办法
14万
查看次数

Visual Studio IDE - 返回上一个

在VS2008,有没有办法按F12键跳转到一个函数的定义后,返回到光标之前的位置?我知道这可以用一些附加组件,但是如果有办法让核心产品做到这一点?

ide visual-studio-2008

56
推荐指数
1
解决办法
2万
查看次数

C#中的命名空间常量

有没有办法为整个命名空间定义一个常量,而不仅仅是在一个类中?例如:

namespace MyNamespace
{    
    public const string MY_CONST = "Test";

    static class Program
    {
    }
}
Run Code Online (Sandbox Code Playgroud)

给出如下编译错误:

预期的类,委托,枚举,接口或结构

c# namespaces const

53
推荐指数
3
解决办法
5万
查看次数

在构造函数期间关闭表单

是否可以在构造函数执行时关闭表单(或者只是在此阶段停止显示)?

我有以下代码:

public partial class MyForm : Form
{        
    public MyForm()
    {
        if (MyFunc())
        {
            this.Close();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这会在Main()中抛出ObjectDisposedException,这里:

    static void Main()
    {            
        ...

        // Following line errors
        Application.Run(new MyForm());
    }
Run Code Online (Sandbox Code Playgroud)

我试过像这样检查MyForm的结果:

static void Main()
{            
    ...

    MyForm frm = new MyForm();
    if (frm != null)
    {
        // Following line errors
        Application.Run(frm);
    }
}
Run Code Online (Sandbox Code Playgroud)

但这似乎没有帮助.有谁能告诉我解决这个问题,好吗?也许是一种检查表单以查看它是否仍然存在的方法?

c# constructor winforms

47
推荐指数
4
解决办法
3万
查看次数

FtpWebRequest下载文件

以下代码旨在通过FTP检索文件.但是,我收到了一个错误.

serverPath = "ftp://x.x.x.x/tmp/myfile.txt";

FtpWebRequest request = (FtpWebRequest)WebRequest.Create(serverPath);

request.KeepAlive = true;
request.UsePassive = true;
request.UseBinary = true;

request.Method = WebRequestMethods.Ftp.DownloadFile;                
request.Credentials = new NetworkCredential(username, password);

// Read the file from the server & write to destination                
using (FtpWebResponse response = (FtpWebResponse)request.GetResponse()) // Error here
using (Stream responseStream = response.GetResponseStream())
using (StreamReader reader = new StreamReader(responseStream))            
using (StreamWriter destination = new StreamWriter(destinationFile))
{
    destination.Write(reader.ReadToEnd());
    destination.Flush();
}
Run Code Online (Sandbox Code Playgroud)

错误是:

远程服务器返回错误:(550)文件不可用(例如,找不到文件,没有访问权限)

该文件肯定存在于远程计算机上,我可以手动执行此ftp(即我有权限).任何人都可以告诉我为什么我可能会收到此错误?

.net c# ftp ftpwebrequest ftpwebresponse

35
推荐指数
3
解决办法
12万
查看次数

SQL Server 2008 R2陷入单用户模式

在本地数据库上执行数据库部署(来自VS SQL Server数据库项目)失败后,数据库处于保持单用户模式的状态(部署以单用户模式运行).

当我从SSMS连接到它并尝试类似以下内容:

ALTER DATABASE MyDatabase
SET MULTI_USER;
GO
Run Code Online (Sandbox Code Playgroud)

我收到错误:

目前无法更改数据库'MyDatabase'的状态或选项.数据库处于单用户模式,用户当前已连接到该用户.

我尝试使数据库脱机,SSMS告诉我成功,但实际上并没有做任何事情.到目前为止,我只能通过删除和重新创建数据库来解决这个问题(这有点好,因为它只是一个本地测试数据库).但是,我希望能够重置状态.

如何说服SQL Server将此数据库从单用户模式中删除?

sql database sql-server database-deployment sql-server-2008

34
推荐指数
1
解决办法
5万
查看次数

如何使用FTP在目录之间移动文件?

我有一个程序需要在FTP服务器上将文件从一个目录移动到另一个目录.例如,文件位于:

ftp://1.1.1.1/MAIN/Dir1
Run Code Online (Sandbox Code Playgroud)

我需要将文件移动到:

ftp://1.1.1.1/MAIN/Dir2
Run Code Online (Sandbox Code Playgroud)

我发现有几篇文章建议使用Rename命令,所以我尝试了以下内容:

    Uri serverFile = new Uri(“ftp://1.1.1.1/MAIN/Dir1/MyFile.txt");
    FtpWebRequest reqFTP= (FtpWebRequest)FtpWebRequest.Create(serverFile);
    reqFTP.Method = WebRequestMethods.Ftp.Rename;
    reqFTP.UseBinary = true;
    reqFTP.Credentials = new NetworkCredential(ftpUser, ftpPass);
    reqFTP.RenameTo = “ftp://1.1.1.1/MAIN/Dir2/MyFile.txt";

    FtpWebResponse response = (FtpWebResponse)reqFTP.GetResponse();
Run Code Online (Sandbox Code Playgroud)

但这似乎不起作用 - 我收到以下错误:

远程服务器返回错误:(550)文件不可用(例如,找不到文件,没有访问权限).

起初我认为这可能与权限有关,但据我所知,我拥有整个FTP站点的权限(它在我的本地PC上,并且uri被解析为localhost).

是否可以在这样的目录之间移动文件,如果没有,它怎么可能?

为了解决已提出的一些观点/建议:

  1. 我可以从源目录下载相同的文件,所以它肯定存在(我正在做的是首先下载文件,然后将其移动到其他地方).
  2. 我可以从浏览器(源目录和目标目录)访问ftp站点
  3. ftp服务器在我本地计算机上的自己的IIS实例下运行.
  4. 路径和大小写是正确的,没有特殊字符.

另外,我尝试将目录路径设置为:

ftp://1.1.1.1/%2fMAIN/Dir1/MyFile.txt
Run Code Online (Sandbox Code Playgroud)

源路径和目标路径都有 - 但这也没有区别.

我发现这篇文章,似乎说将目标指定为相对路径会有所帮助 - 似乎不可能将绝对路径指定为目标.

reqFTP.RenameTo = “../Dir2/MyFile.txt";
Run Code Online (Sandbox Code Playgroud)

c# ftp ftpwebrequest .net-3.5

19
推荐指数
2
解决办法
5万
查看次数

将bindingRedirect添加到.Net标准库

我有一个.Net标准库,我在尝试使用其中一个依赖库时遇到错误,我认为这是一个版本冲突.在旧式.Net类库中,我可能会添加如下内容:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>
Run Code Online (Sandbox Code Playgroud)

但是,我显然不能在Net Standard库中这样做; 所以,我的问题是,在.Net标准世界中解决此类问题的策略是什么?

.net dependencies assembly-binding-redirect .net-standard

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