gpt4 book ai didi

c# - 为什么我不能使用 Humanizer 库中的 TextInfo.ToTitleCase 方法?

转载 作者:行者123 更新时间:2023-11-30 15:15:32 27 4
gpt4 key购买 nike

我从他们的 GitHub page 下载了 Humanizer 库的代码当我在查看 TextInfo 类的某些方法时注意到 Intellisense 窗口中出现黄色的“状态警告”图标时,正在测试代码中的一些更改:

Status warning on method Intellisense

我以前从未在 Intellisense 中看到过这个图标,我想知道它的含义。我可以在普通应用程序中执行此方法调用而不会出现任何错误。

我也不确定 Humanizer(netstandard1.0) - Not AvailableHumanizer(netstandard2.0) - Available 在这种情况下是什么意思。

这是我使用的代码:

public string Transform(string input)
{
TextInfo textInfo = CultureInfo.InvariantCulture.TextInfo;
return textInfo.ToTitleCase(input);
}

这给出了这个错误:

'TextInfo' does not contain a definition for 'ToTitleCase' and no accessible extension method 'ToTitleCase' accepting a first argument of type 'TextInfo' could be found (are you missing a using directive or an assembly reference?)

为什么我不能使用 TextInfo.ToTitleCase(...) Humanizer 库中的方法?

最佳答案

他们正在做一些称为“多目标”的事情,他们的代码会生成两个不同版本的库,一个与 netstandard1.0 API 兼容,另一个与 netstandard2 兼容。 0 API:

 <TargetFrameworks>netstandard1.0;netstandard2.0</TargetFrameworks>

TextInfo.ToTitleCase() 直到版本 2.0 才添加到 .Net Core,因此如果您针对任何 netstandard 框架,则无法使用它2.0 之前的版本。参见 .NET Standard有关哪些运行时/平台支持哪些 .Net Standard 版本的列表。

除非您使用“条件编译”编译器指令,否则您必须将代码限制为最低 API 支持的 API。这些本质上是您向较低级别目标提供较高级别 API 函数的替代实现的地方。参见 How to Multitarget在 Microsoft .Net Core 文档中有一个例子。

这样做的原因是提供一个更小且通常不那么复杂(代码方面)的库版本,可以在可以使用更高级别 API 的项目中使用,但也可以提供一个您不能使用更高级别的 API。

关于c# - 为什么我不能使用 Humanizer 库中的 TextInfo.ToTitleCase 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51939050/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com