小编can*_*on7的帖子

为什么IAsyncEnumerator在C#8中没有Reset方法?

为什么IAsyncEnumerator没有Reset方法?它仅具有Current属性和MoveNextAsync()方法。

public interface IAsyncEnumerator<out T> : IAsyncDisposable
{
    T Current
    {
        get;
    }

    ValueTask<bool> MoveNextAsync();
}
Run Code Online (Sandbox Code Playgroud)

c# async-await c#-8.0

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

C# 中的文档注释 - 不能在摘要中使用“&lt;”或“&gt;”

有人能告诉我如何让它工作吗?

 /// <summary>
 /// I want to write: List<T>
 /// </summary>
Run Code Online (Sandbox Code Playgroud)

任何时候我使用 '<' 或 '>' VS 都会放弃我...... <c>或者<code>不会成功。

c# comments visual-studio

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

在 C# 中,Relfection 错误地确定了 ByRef 方法参数的 IsGenericType 属性

有人可以解释为什么我看到我所看到的(下面控制台的屏幕截图)?对于 'ref' 和非 'ref' 方法参数,我从 Reflection 获得了不同的泛型相关属性。我正在使用 .NET 4.8(经典的 .NET Framework)。

public class MyClass {

    public class Aref
    {
        public virtual void method(object je, ref List<MyClass> batchlist, object doc)
        {
        }
    }


    public class A
    {
        public virtual void method(object je, List<MyClass> batchlist, object doc)
        {
        }
    }

    private static void WriteGenericProps(Type type)
    {
        var method = type.GetMethod(nameof(Aref.method));
        var param = method.GetParameters().First(p => p.Name == "batchlist");

        Console.WriteLine(nameof(param.ParameterType.IsByRef) + "=" + param.ParameterType.IsByRef);
        Console.WriteLine(nameof(param.ParameterType.IsGenericType) + "=" + param.ParameterType.IsGenericType);
        Console.WriteLine(nameof(param.ParameterType.ContainsGenericParameters) + "=" + …
Run Code Online (Sandbox Code Playgroud)

.net c# generics reflection

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

为什么在实现的类中没有接口名称就不能访问接口中定义的常量?

我们有接口和实现类:

pubic interface IStackContainer {
    const string DefaultStack = "default";
}

public class StackContainer<T> : MyBaseStackContainer<T>, IStackContainer{
    protected  internal string Stack {
        get { return Get(nameof(Stack), IInterface.DefaultStack); } //works fine
        set { Set(nameof(Stack), DefaultStack, value); }   //doesn't exist in the current context, why?
    }
}
Run Code Online (Sandbox Code Playgroud)

为什么我不能在没有“IInterface.”的情况下访问 StackContainer 中的常量?

PS:我的目的是将 const 放置在某个地方而不是 StackContainer 以便轻松访问它。如果它是在 StackContainer 中定义的,我可以像这样使用它:StackContainer.DefaultStack,但我认为这不是一个好的决定。

c# constants c#-8.0 default-interface-member

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

C# 的 HttpClient ReadAsStreamAsync

我在使用 C# 的 HttpClient ReadAsStreamAsync 下载 400MB+ 文件时遇到问题 - 问题是从 427724800 中仅读取了大约 213864187 个字节,然后

read = await stream.ReadAsync(buffer, 0, buffer.Length, token)
Run Code Online (Sandbox Code Playgroud)

没有明显原因一直返回0。

有人遇到过类似的问题吗?

using (var stream = await response.Content.ReadAsStreamAsync()) {
    var totalRead = 0L;
    var buffer = new byte[4096];                            
    var moreToRead = true;

    const int CHUNK_SIZE = 4096;
    var fileStream = File.Create(filename, CHUNK_SIZE);                            
    int bytesRead;
        do {
        token.ThrowIfCancellationRequested();

        var read = await stream.ReadAsync(buffer, 0, buffer.Length, token);

        if (read == 0) {
            moreToRead = false;
            this.Percentage = 100;
            if (fileStream != …
Run Code Online (Sandbox Code Playgroud)

c# httpclient

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