小编Pan*_*vos的帖子

防止选择rt标签(假名)中的文本

我使用ruby注释为日文文本添加假名:

<ruby><rb>?</rb><rt>??</rt></ruby><ruby><rb>?</rb><rt>?</rt></ruby>
Run Code Online (Sandbox Code Playgroud)

当我尝试选择汉字并在Safari或Chrome中复制时,剪贴板如下所示:

?
??
?
Run Code Online (Sandbox Code Playgroud)

我也无法从OS X的字典中查找单词.

有没有办法阻止选择假名?rt { -webkit-user-select: none; }似乎不起作用.

javascript css ruby-characters

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

c#8开关表达式多个结果相同的情况

如何编写一个开关表达式来支持多个返回相同结果的情况?

对于版本8之前的c#,可能会这样编写一个开关:

var switchValue = 3;
var resultText = string.Empty;
switch (switchValue)
{
    case 1:
    case 2:
    case 3:
        resultText = "one to three";
        break;
    case 4:
        resultText = "four";
        break;
    case 5:
        resultText = "five";
        break;
    default:
        resultText = "unkown";
        break;
}
Run Code Online (Sandbox Code Playgroud)

当我使用C#版本8表达式语法时,如下所示:

var switchValue = 3;
var resultText = switchValue switch
{
    1 => "one to three",
    2 => "one to three",
    3 => "one to three",
    4 => "four",
    5 => "five",
    _ => "unknown",
};
Run Code Online (Sandbox Code Playgroud)

所以我的问题是:如何将案例1,2和3变成一个开关案例臂,从而不需要重复该值? …

c# c#-8.0 switch-expression

8
推荐指数
3
解决办法
1100
查看次数

即使参数具有非空约束,也会收到有关可为空类型参数的错误

我有一个通用接口IDataAdapter<T>;接口的实现者应该能够Guid从数据源读取带有ID 的POCO 。IDataAdapter<T>有一个Read(Guid id)我想返回 a 的方法T?,其中 null 表示在数据源中找不到匹配项。然而,即使约束T : notnullIDataAdapter<T>,试图定义该方法给出了错误CS8627: A nullable type parameter must be known to be a value type or non-nullable reference type. Consider adding a 'class', 'struct', or type constraint.为什么我仍然收到此错误,甚至T限制到notnull

代码(应该在 C# 8 环境中<Nullable>enable</Nullable>):

interface IDataAdapter<T> where T : notnull
{
    T? Read (Guid id); // error CS8627
}
Run Code Online (Sandbox Code Playgroud)

c# nullable c#-8.0 nullable-reference-types

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

pdb文件实际上做了什么?

好的,我意识到PDB文件是.NET程序集的符号文件.但我从未真正研究过他们的扩展用法.

如果我从一个加载了运行代码的可视工作室中使用远程调试器,我是否真的需要远程计算机上的PDB文件?

如果没有PDB文件和连接源代码的调试器,我会在运行代码的机器上获得未处理的异常信息吗?

他们还做了什么?

.net debugging symbols

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

SQL Server Microsoft.ACE.OLEDB.15.0

我正在编写一个查询来访问Excel工作表(2013 - 32位)中的内容,并将其显示为SQL Server 2014 SP2 64位中的表.我收到这个错误:

OLE DB提供程序"Microsoft.ACE.OLEDB.15.0"尚未注册.

我已经尝试安装Access Runtime 2013和2010,但同样的问题仍然存在.我使用的查询是:

SELECT * FROM OPENROWSET('Microsoft.ACE.OLEDB.15.0', 
                         'Excel 15.0;HDR=YES;Database=C:\SheetName.xlsx', 
                         'SELECT * FROM [PayerList$]')
Run Code Online (Sandbox Code Playgroud)

sql-server oledb

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

EF 核心数据库特定列到嵌套对象

我有这个:

public class Foo
{
    public int Id { get; set; }
    public Bar Bar { get; set; }
}

public class Bar
{
    public int Something { get; set; }
    public int SomethingElse { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我的数据库是这样的:

CREATE TABLE [Foo](
    [Id]                 INT,
    [Bar_Something]      INT    NOT NULL,
    [Bar_SomethingElse]  INT    NOT NULL,
)
Run Code Online (Sandbox Code Playgroud)

当我获得数据库上下文时

public class DB: DbContext
{
    public DbSet<Foo> Foo { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

Foo.Id已正确映射但Bar无法映射此错误System.InvalidOperationException : The entity type 'Bar' requires a …

c# entity-framework-core .net-core

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

可空引用类型意外 CS8629 可空值类型可能是带有临时变量的空

在 C# 8 项目中,我正在使用可为空引用类型并收到一个意外的(或至少对我来说是意外的)CS8629 警告,

bool singleContent = x.DataInt != null;
bool multiContent = x.DataNvarchar != null;

if (singleContent && multiContent)
{
    throw new ArgumentException("Expected data to either associate a single content node or " +
        "multiple content nodes, but both are associated.");
}

if (singleContent)
{
    var copy = x.DataInt.Value; // CS8629 here
    newPropertyData.DataNvarchar = $"umb://{type.UdiType}/{Nodes[copy].UniqueId.ToString("N")}";
}
Run Code Online (Sandbox Code Playgroud)

我决定将其GetValueOrDefault()用作解决方法,但我想知道如何向编译器证明x.DataInt如果singleContent被选中就不能为空。

请注意,类型x.DataIntint?

c# c#-8.0 nullable-reference-types

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

从ASP.Net Core 2.2升级到3.0

我有一个具有以下配置的ASP.Net Core项目:

  <PropertyGroup>
    <TargetFramework>netcoreapp2.2</TargetFramework>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.App" />
  </ItemGroup>
Run Code Online (Sandbox Code Playgroud)

我想将该项目升级到<TargetFramework>netcoreapp3.0</TargetFramework>。这样做时,我得到以下警告:

C:\Program Files\dotnet\sdk\3.0.100\Sdks\Microsoft.NET.Sdk\targets\
Microsoft.NET.Sdk.DefaultItems.targets(149,5): warning NETSDK1080: A 
PackageReference to Microsoft.AspNetCore.App is not necessary when targeting
.NET Core 3.0 or higher. If Microsoft.NET.Sdk.Web is used, the shared 
framework will be referenced automatically. Otherwise, the PackageReference 
should be replaced with a FrameworkReference.
Run Code Online (Sandbox Code Playgroud)

对此的解决方案到底是什么?我尝试删除对它的引用,Microsoft.AspNetCore.App但这不起作用。该代码未引用共享框架。

另外,“否则,应将PackageReference替换为FrameworkReference”。意思?

upgrade asp.net-core-3.0 .net-core-3.0

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

使用Thread.Sleep在c#中的循环中每次等待一秒钟

我正在尝试每秒将“ p”打印到屏幕上。

当我运行这个:

while (true)
    Thread.Sleep(1000); 
    Console.WriteLine("p");
Run Code Online (Sandbox Code Playgroud)

它根本不打印。但是当我运行这个:

while (true)
    Console.WriteLine("p");
    Thread.Sleep(1000); 
Run Code Online (Sandbox Code Playgroud)

无需等待即可打印。有人可以向我解释一下并提出解决办法吗?

c# system

7
推荐指数
2
解决办法
325
查看次数

我们什么时候应该在 C# 中使用默认接口方法?

C# 8及更高版本中,我们有默认的接口方法,因此:

不是破坏了接口的原理吗?

我们什么时候应该使用默认接口方法而不是基(抽象)类

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

7
推荐指数
2
解决办法
958
查看次数