小编Luk*_* Vo的帖子

Java中的单独{code}是什么?

我最近阅读了一些使用特殊语法的代码{},我问过一位经验丰富的Java开发人员,但他也无法回答.

public void doSomething() {
    someWorks();
    {
        someVariables;
        someMoreWorks();
    }
    someEvenWorks();
    {
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

为什么代码作者将这些行放在里面{}?我想{}在执行退出后会立即释放变量中声明的变量{},因为我不能再访问这些变量{}了吗?

java coding-style brackets

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

`adb shell input` 返回没有注册任何输入的 `Killed` 响应

我正在尝试模拟我的小米 Mi Max 2 上的触摸。我尝试了monkeyrunner但失败了,所以我正在尝试 adb。但是,每个命令都是通过Killed响应返回的,并且没有按下触摸/键。这是什么意思?

在此处输入图片说明

android input touch adb adb-shell

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

UWP FolderPicker 选择文件夹按钮默认禁用?

我有一个简单的代码FolderPicker

        var diagFolder = new FolderPicker();
        diagFolder.FileTypeFilter.Add("*");

        var outputFolder = await diagFolder.PickSingleFolderAsync();
        if (outputFolder == null) { return; }
Run Code Online (Sandbox Code Playgroud)

它在首次启动时运行良好。但是,在第二次调用时,该Select Folder按钮被禁用,用户无法选择同一个文件夹,尽管它完全有效。如果我想选择同一个文件夹,我必须返回一个级别并重新输入该文件夹。

在此处输入图片说明

任何人都遇到此问题并知道解决方法?

编辑:据我所知,这实际上不是 UWP 代码问题,而是 Windows 问题,所以我在这里发布了反馈:https : //aka.ms/AA1hloz。我认为在那里投票应该会有所帮助。

user-interface dialog windows-10 uwp windows-10-universal

5
推荐指数
0
解决办法
414
查看次数

微软退役SmtpClient的详细原因是什么?

在.NET Framework 4.7 doc中,Microsoft标记为SmtpClient过时,原因如下:

SmtpClient及其网络类型设计不佳,我们强烈建议您使用https://github.com/jstedfast/MailKithttps://github.com/jstedfast/MimeKit代替

我很好奇,也没有这方面的专家.这个"设计不佳"究竟是什么MS必须推荐外部图书馆呢?对仍然使用它的项目有多糟糕?

.net networking smtp smtpclient

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

如何获取使用顶级语句的 C# 9 程序的 Reflection TypeInfo?

假设我有一个用 C# 9 编写的简单脚本,如下所示:

using System;
using System.IO;

// What to put in the ???
var exeFolder = Path.GetDirectoryName(typeof(???).Assembly.Location);
Run Code Online (Sandbox Code Playgroud)

之前,通过完整的程序,我们可以将该Main类用作“指示器”类。this并且this.GetType()不可用,因为从技术上讲它位于静态方法内。我现在怎样才能得到它?


我在输入问题时想到的解决方法是Assembly.GetCallingAssembly()

var exeFolder = Path.GetDirectoryName(Assembly.GetCallingAssembly().Location);
Run Code Online (Sandbox Code Playgroud)

它适用于我的情况,但我只能获取Assembly,而不是TypeInfo代码正在运行的位置。

c# reflection c#-9.0 toplevel-statement

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

在 C# 中,为什么不能在没有大括号的 switch 部分中使用 using 变量?

考虑以下代码:

    switch ("")
    {
        case "":
            using var s = new MemoryStream();

            break;
    }
Run Code Online (Sandbox Code Playgroud)

上面的代码不会编译并显示以下错误:“A using 变量不能直接在 switch 部分中使用(考虑使用大括号)”。

修复已经在建议中,但我的问题是为什么下面的代码是合法的,但上面的代码不是?为什么 C# 不能只允许前面的代码?

    switch ("")
    {
        case "":
            {
                using var s = new MemoryStream();
            }
            
            // break can be inside or outside the braces
            break;
    }
Run Code Online (Sandbox Code Playgroud)

c# grammar using-statement switch-statement

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

.NET 6 PriorityQueue 线程安全吗?

.NET 6 现在有PriorityQueue<TElement,TPriority>这非常有用。该文档还不是很清楚(在提出问题时,该文档仍然适用于 RC1)是否是线程安全的。两件事情:

  • 它驻留在 中System.Collections.Generic,并且 中似乎没有等效项System.Collections.Concurrent

  • TryDequeue它确实有名为和 的方法TryPeek。当然,它们可能只是在队列为空时不会抛出异常的方法,但它确实给人一种并发集合的印象。

我可以将它用于多线程环境而无需包装/锁定(例如在 ASP.NET Core 网站中)吗?我不知道的任何并发等效项(如果可能的话,我尝试不使用第 3 方包)?

.net c# multithreading priority-queue .net-6.0

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

配置 IIS 或 Web.config 以仅提供特定文件夹中的所有文件

我正在开发一个 CDN 服务器,这是一个普通的 MVC 项目。但是,在项目文件夹中,假设我有CDN文件夹,并且我希望每个人都可以访问其中的任何文件,具有任何文件扩展名,并且CDN仅适用于文件夹。也就是说,我不希望我的web.config文件或Views文件夹被公开。

Controller有没有办法在不使用自定义或的情况下做到这一点RouteHandler

编辑:正如指定的那样,我正在 IIS 或 Web.config 或其他地方寻找一种在 Controller 或 RouteHandler 中编写代码的方法,因此它不是重复的。

根据 David Gunderson 的回答,这是我允许 CDN 文件夹的 web.config:

  <location path="CDN">
    <system.webServer>
      <staticContent>
        <mimeMap fileExtension="*" mimeType="application/octet-stream"/>
      </staticContent>
    </system.webServer>
  </location>
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc file asp.net-mvc-5

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

如何解构可空元组?

我正在使用NullableContextOptions启用了(可空引用)的C# 8.0 。

我有一个带有此签名的函数:

public static (int line, string content)? GetNextNonEmptyLineDown(this IList<string> contents, int fromLine)
Run Code Online (Sandbox Code Playgroud)

基本上,如果有非空行,它返回行和内容,如果没有则返回。

问题是我不知道如何解构它。如果我尝试:

var (firstLineIndex, firstLine) = content.GetNextNonEmptyLineDown(0);
Run Code Online (Sandbox Code Playgroud)

我收到 4 个语法错误:

在此处输入图片说明

所以我只能使用:

        var lineInfo = content.GetNextNonEmptyLineDown(0);

        var firstLineIndex =  lineInfo.Value.line;
        var firstLine = lineInfo.Value.content;
Run Code Online (Sandbox Code Playgroud)

这破坏了目的。lineInfo是类型struct<T> where T is (int line, string content)

无论如何要解构一个可为空的元组?

编辑:发布问题后,我想到允许解构可空元组是没有意义的,因为可能无法确定变量的数据类型。这是我目前的修复,但想知道这是否是最好的方法:

        var lineInfo = content.GetNextNonEmptyLineDown(0);

        if (lineInfo == null)
        {
            throw new Exception();
        } 

        var (firstLineIndex, firstLine) = lineInfo.Value;
Run Code Online (Sandbox Code Playgroud)

c# tuples nullable valuetuple

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

如何在 Visual Studio (2019) for Python 中禁用滚动条旁边的代码预览/地图

注意:这不是这个问题的重复(它是针对 VS Code 的,我要求 Visual Studio - 2019 Community 如果适用)

我是 Python 新手(来自 C# .NET 背景),当切换到 Python 时,我注意到滚动条旁边有一个巨大的条:

在此输入图像描述

他们叫什么?我如何禁用它们?为什么 Python 环境有它们(我以前在使用 C# 时从未见过它们),它对常见场景有帮助吗?如果可以的话我真的应该禁用它们吗?

我查看了 Python 的选项,没有看到任何可能有用的东西。

编辑:找到该选项,它位于“文本编辑器”>“Python”>“滚动条”(不是顶级 Python 部分,而是在“文本编辑器”下)。在“行为”部分,我将Source overview选项更改为Off,现在它就像 C# 一样。

python visual-studio visual-studio-2019

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