小编Red*_*Red的帖子

C#中具有相同名称和签名但返回类型不同的方法

我接受了一次采访,我被问到如下:

问题:具有相同名称和签名但返回类型不同的方法.是否有可能,他问我这种类型的东西.

有人可以告诉我以下内容:

  1. 在任何情况下都是可能的事情(比如基类中的一个和至少派生类中的一个?)如果是这样的类型是什么?像编译或运行时多态?

  2. 在编译时多态,如果返回类型的方法也与签名不同怎么办?但只有功能名称相同.编译时多态还在吗?

  3. 在覆盖中,如果我有不同的返回类型但方法名称和签名相同怎么办?可能吗 ?(他问我这个问题,我回答错误:()请帮帮我.

谢谢

.net c# polymorphism inheritance c#-4.0

23
推荐指数
4
解决办法
6万
查看次数

如何在 ASP.NET Core 中转换 AppSettings

我相信它appsettings.json及其环境对应物(开发、暂存、生产)取代了 Web.config 转换。

这在开发环境中工作正常,其中这些环境的变量存在于 launchSettings.json

但是,如果我使用发布功能,将发布配置为使用我创建的暂存构建配置,则不会出现转换。

我在其他地方读过你需要创建环境变量。真的!事情就是这样吗?我们现在有一个系统环境变量的舰队,这些应用程序可能会或可能不会(随着时间的推移)在该机器上的 IIS(或其他)Web 服务器上运行。

目前,我正在appsettings.json发布后手动复制和粘贴“暂存” 。我已经必须将预先准备好的 Web.config 文件复制并粘贴到该文件夹​​中,因为它不再可用于在 IDE 中进行配置(但奇怪的是,仍然会在发布操作期间生成)。

是否有另一种方法可以为部署进行可维护的转换,类似于旧配置文件的转换?

c# appsettings asp.net-core asp.net-core-2.1

5
推荐指数
2
解决办法
3428
查看次数

让SQL等到上一个语句完成

我一直在寻找,但我找不到正确的答案,可能我搜索错了,因为我不知道该找什么:)

无论如何,我有一个带有begin和的TSQL commit transaction.在事务中,我添加了一些列,并重命名了一些列.在重命名和添加列语句之后,我还运行一些更新语句以将数据加载到新创建的列中.

现在的问题是,由于某种原因,更新会产生一个错误,它无法更新给定列,因为它不存在(YET ???).

我的想法是,该语句仍在计算重命名和添加列,但已经继续使用更新语句.该表非常大,有几百万条记录,所以我可以想象它需要一些时间来添加和重命名列

如果我首先运行重命名并添加语句而不是单独更新语句,它确实有效.所以它与一些等待时间有关.

是否有可能让sql force逐步执行并等到完成语句完成后再转到下一个?

t-sql sql-server transactions

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

使用CID字体从PDF中提取文本

我正在编写一个Web应用程序,它在PDF的每个页面的顶部提取一行.PDF来自产品的不同版本,可以通过许多PDF打印机,也可以使用不同的版本和不同的设置.

到目前为止,使用PDFSharp和iTextSharp我已经设法让它适用于所有版本的PDF.我的挂机是带有CID字体的文件(Identity-H).

我编写了一个部分解析器来查找字体表引用和文本块,但将这些转换为可读文本正在打败我.

有没有人有: - 一个解决CID字体的解析器(像这一个/sf/answers/121258581/); 或 - 一些示例代码,用于解析页面资源字典以查找页面字体并获取其ToUnicode流以帮助完成此示例(/sf/answers/283382991/)

我们必须使用iTextSharp 4.1来保留免费使用许可.

这是我的部分解析器.

public string ExtractTextFromCIDPDFBytes(byte[] input)
{
    if (input == null || input.Length == 0) return "";

    try
    {
        // Holds the final result to be returned
        string resultString = "";
        // Are we in a block of text or not
        bool blnInText = false;
        // Holds each line of text before written to resultString
        string phrase = "";
        // Holds the 4-character hex codes as …
Run Code Online (Sandbox Code Playgroud)

pdf fonts itextsharp pdf-extraction

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

Kusto 按聚合排序,如计数

我是 Kusto/KQL 的新手,但在 T-SQL 方面经验丰富。我正在尝试获取异常列表,按类型对它们进行分组,添加计数,然后按该计数降序排列。在 SQL 中它将是:

SELECT Type, COUNT(Type)
FROM exceptions
GROUP BY Type
ORDER BY COUNT(Type) Desc
Run Code Online (Sandbox Code Playgroud)

除了那类以外,我什么都做到了。

exceptions
| summarize count() by type
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚如何按聚合排序。我试过了| sort by count() desc| sort by count() by type desc| as c | sort by c desc| extend c = summarize count() by type | sort by c desc

sorting aggregate kql azure-data-explorer

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

如何在foreach中重复一个循环

大家好,你怎么能在 foreach 中重复一次迭代?

foreach (string line in File.ReadLines("file.txt"))
{
     // now line == "account", next line == "account1"
     if (line.Contains("a"))
         //next loop take "account1";
     else
        // need to set that next loop will take line == "account" again
}
Run Code Online (Sandbox Code Playgroud)

怎么做?

c# for-loop

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

为什么SQL Server不遵循带有SUM的BODMAS数学规则?

我昨天遇到了遗留存储过程的一个非常令人困惑的问题,虽然我已经"修复"它,但我不觉得我理解为什么需要它.

BODMAS - 数学运算的顺序:

括号,顺序,分区,乘法,加法,减法

所以,加法发生在减法之前.从技术上讲,它们具有相同的权重并且"同时"发生,因为它们通常相互抵消.

经过同意,我们应该同意以下内容都是正确的:

  • 1000 - (300 + 300)= 400
  • 1000 - 300 + 300 = 400
  • (1000 - 300)+ 300 = 1000

但是,SQL将中间值评估为1000.我可以通过添加括号来轻松解决此问题.我担心的是,尽管这个例子简洁明了,当数字300来自Coalesced Sums时,已经有很多括号飞来飞去.完全可行的是,他们可能被BODMAS逻辑后的某个人意外删除,或者在代码优化器中被标记为冗余.

这里有一些代码可以自己试试

CREATE TABLE #TempData ([Number] INT)

INSERT INTO #TempData VALUES(200)
INSERT INTO #TempData VALUES(100)

SELECT 1000 - (SUM(Number) + SUM(Number))
FROM #TempData

SELECT 1000 - SUM(Number) + SUM(Number)
FROM #TempData

SELECT (1000 - SUM(Number)) + SUM(Number)
FROM #TempData

DROP TABLE #TempData
Run Code Online (Sandbox Code Playgroud)

sql sql-server math

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