相关疑难解决方法(0)

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

如何防止生成的接口实现使用类型别名?

我目前正在使用Visual Studio(特别是2012 Express).我有一个接口已经定义如下:

interface IMyInterface
{
    public String Data { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

如果我有一个空类:

class MyClass : IMyInterface
{
}
Run Code Online (Sandbox Code Playgroud)

我右键单击IMyInterface,我可以选择"实现接口".当我这样做时,自动生成的代码产生以下内容:

class MyClass : IMyInterface
{
    public string Data
    {
        get
        {
            throw new NotImplementedException();
        }
        set
        {
            throw new NotImplementedException();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,有没有办法可以自动生成以下内容:

    public String Data
Run Code Online (Sandbox Code Playgroud)

代替:

    public string Data
Run Code Online (Sandbox Code Playgroud)

c# visual-studio visual-studio-2012

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

在 XML 文档中将 <see cref=""/> 与可选且可为空的参数结合使用

在为我的程序编写 XML 文档时,我在记录此方法时遇到了一个问题:

internal void MethodB(int i, DateTime? date = null);
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是特定于参数的date。正如您所看到的,它是可选的并且可以为 null。以下是我尝试记录此方法的方法:

/// <summary>
/// This method uses <see cref="MethodB(Int32, System.DateTime)"/> internally
/// todo some stuff.
/// </summary>
Run Code Online (Sandbox Code Playgroud)

具体来说,我收到一条编译器警告,表明无法解析cref的值。

如何修复 XML 文档注释,使其在编译时不会出现此警告?

c# documentation nullable optional-parameters visual-studio

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

为什么'typeof(string).FullName'给'System.String'而不是'string'?

为什么typeof(string).FullName给予System.String而不给予string?同样是与所有其他"简单"类型,如int,float,double,...

我明白这typeof是返回System.Type给定类型的对象,但为什么string不是一个System.Type对象呢?

是因为它string是c#语言的System.Type一部分,并且是系统库的一部分吗?

c# types typeof

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

无法创建静态类'System.Tuple'的实例

我对这门语言很新.这段代码给了我错误:

无法创建静态类'System.Tuple'的实例

Operator '!=' cannot be applied to operands of type 'bool' and 'int'
Run Code Online (Sandbox Code Playgroud)

我不知道我做错了什么.有人可以告诉我有什么问题

using(StreamReader rdr = new StreamReader("fileName"))
{
    StringBuilder sb = new StringBuilder();
    Int32 nc = 0;
    Char c;
    Int32 lineNumber = 0;
    while( (nc == rdr.Read() !=-1 ))
    {
        c = (Char)nc;
        if( Char.IsWhiteSpace(c) )
        {
            if( sb.Length > 0 )
            {
                yield return new Tuple( sb.ToString(), lineNumber );
                sb.Length = 0;
            }

            if( c == '\n' ) lineNumber++;
        } 
        else 
        {
            sb.Append( c );
        } …
Run Code Online (Sandbox Code Playgroud)

c# tuples

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

不使用系统命名空间如何使用字符串

任何人都可以告诉我,我没有使用系统名称空间,但字符串可用作字符串hello ="Hello"; 并且不会抛出任何编译时错误

但是,如果我写大写字符串,它就不可用.

sealed class SealedClass
{
    public void PrintSealed()
    {
        string hello = "Hello";
    }
}
Run Code Online (Sandbox Code Playgroud)

.net c# asp.net string

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

我希望String字段包含两个其他字段

我想Fullname,以包括FirstNameLastname,但我得到以下异常:

字段初始值设定项不能引用非静态字段,方法或属性"Employee.FirstName"/"Employee.LastName"

class Employee
{
    public string FirstName { get; }
    public string LastName { get; }
    private string FullName = string.Format("{0}, {1}", FirstName, LastName);
}
Run Code Online (Sandbox Code Playgroud)

c#

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

为Specflow配置cultureInfo

我有两台具有不同文化的机器,其中一种格式mm/dd/yyyy被Specflow成功解析(它是一个步骤参数),但在另一台机器中失败.

我希望我的测试能够独立于文化.那么如何配置Specflow CultureInfo.InvariantCulture用于解析日期?

datetime parsing specflow

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

为什么这个枚举声明现在有效?

在回答另一个问题时,Jon Skeet提到有一个奇怪的事情正在进行定义enums.他的回答.

他声明,enum只有类型别名而不是框架类型(int有效,Int32不是等)才能重新定义a的基础类型.

public enum Foo : UInt32 {} // Invalid
public enum Bar : uint   {} // Valid
Run Code Online (Sandbox Code Playgroud)

现在我试图重现(在VS2015中使用C#6/Roslyn),我没有得出相同的结论:

public enum TestEnum : UInt32
{

}
Run Code Online (Sandbox Code Playgroud)

public enum MyEnum : uint
{

}
Run Code Online (Sandbox Code Playgroud)

都是完全有效的.为什么会这样?或者改变了什么?


编辑:

所以为了清理事情,这是C#6中的一个变化,尚未记录,并且很快就会记录下来,因为你可以从Roslyn Github上的这个git问题中读到

.net c# enums c#-6.0

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

使用 SqlDataReader 将数据行返回到 List&lt;string&gt;

我正在尝试创建一个通用的 SqlDataReader,它将一个包含 33 列的表转换为一个列表。我希望每个列表项都包含每行的所有 33 个列值。

但是,我的代码将每个值分配给一个单独的列表项。

因此,我有 33,000 个列表项,而不是 1000 个列表项 = 1000 行数据。

我更喜欢在数据表上使用列表,因为我需要做的列表比较要简单得多。

我怎样才能有 1000 个列表项,每个列表项有 33 个值?

   public static List<string> loadSQL(String query, String connectString)
    {
        List<string> dataList = new List<string>();

        using (SqlConnection connection = new SqlConnection(connectString))
        {
            using (SqlCommand command = new SqlCommand(query, connection))

            {
                connection.Open();

                using (SqlDataReader reader = command.ExecuteReader())
                {
                    while (reader.Read())
                    {

                        for (int i = 0; i < reader.FieldCount; i ++) 
                            { 
                                dataList.Add(Convert.ToString(reader.GetValue(i)));
                            }
                    }
                }
            }
        return dataList;

        }
    }
Run Code Online (Sandbox Code Playgroud)

... …

.net c# sqldatareader

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