首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我不能在人机库中使用TextInfo.ToTitleCase方法?

为什么我不能在人机库中使用TextInfo.ToTitleCase方法?
EN

Stack Overflow用户
提问于 2018-08-20 22:02:46
回答 2查看 722关注 0票数 3

我从GitHub页面下载了人道主义程序库的代码,并且在测试代码中的一些更改时,当我看到TextInfo类上的一些方法时,我注意到Intellisense窗口中有一个黄色的“状态警告”图标:

我以前从未在Intellisense中见过这个图标,我想知道它意味着什么。我可以在一个普通的应用程序中完成这个方法调用,而不会有任何错误。

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

下面是我使用的代码:

代码语言:javascript
复制
public string Transform(string input)
{
    TextInfo textInfo = CultureInfo.InvariantCulture.TextInfo;
    return textInfo.ToTitleCase(input);
}

这就产生了这个错误:

'TextInfo‘不包含'ToTitleCase’的定义,也找不到接受'TextInfo‘类型的第一个参数的可访问扩展方法'ToTitleCase’(您缺少使用指令还是程序集引用?)

为什么不能在人机库中使用 TextInfo.ToTitleCase(...) 方法?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-08-21 18:11:33

他们正在执行名为“多目标”的操作,他们的代码生成两个不同版本的库,一个与netstandard1.0 API兼容,另一个兼容netstandard2.0 API:

代码语言:javascript
复制
 <TargetFrameworks>netstandard1.0;netstandard2.0</TargetFrameworks>

TextInfo.ToTitleCase()直到2.0版本才被添加到.Net核心中,所以如果您在版本2.0之前针对任何netstandard框架,则无法使用它。有关哪些运行时/平台支持哪个.Net标准版本的清单,请参见.Net。

除非使用“条件编译”编译器指令,否则必须将代码限制在由最低API支持的API上。从本质上讲,您可以将高级API函数的替代实现提供给较低级别的目标。有关此问题的示例,请参阅中的如何实现多目标

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

票数 2
EN

Stack Overflow用户

发布于 2018-08-20 22:11:54

在这种情况下,我也不确定什么是人道主义器(netStandard1.0)--不可用,而人道主义器(netStandard2.0)--指的是什么。

ToTitleCase方法在.NET Core1.0 (.netstandart = .NET Core)中不受支持,但在2.0版本中得到了支持。您可能使用的是不受支持的,因此您会得到错误。

您可以查看文件编制 ToTitleCase以查看它在哪个版本中得到支持。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51939050

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档