小编Jor*_*dan的帖子

在私有静态方法的C#中进行单元测试,接受其他私有静态方法作为委托参数

我拥有:我有一个非静态类,其中包含两个私有静态方法:其中一个可以作为委托参数传递给另一个:

public class MyClass
{
    ...

    private static string MyMethodToTest(int a, int b, Func<int, int, int> myDelegate)
    {
        return "result is " + myDelegate(a, b);
    }

    private static int MyDelegateMethod(int a, int b)
    {
        return (a + b);
    }
}
Run Code Online (Sandbox Code Playgroud)

我要做的事情:我必须测试(使用单元测试)私有静态方法MyMethodToTest,并将私有静态方法作为委托参数传递给它MyDelegateMethod.

我能做什么:我知道如何测试私有静态方法,但我不知道如何将同一个类的另一个私有静态方法作为委托参数传递给此方法.

因此,如果我们假设该MyMethodToTest方法根本没有第三个参数,那么测试方法将如下所示:

using System;
using System.Reflection;
using Microsoft.VisualStudio.TestTools.UnitTesting;
Run Code Online (Sandbox Code Playgroud)

...

[TestMethod]
public void MyTest()
{
    PrivateType privateType = new PrivateType(typeof(MyClass));

    Type[] parameterTypes =
    {
        typeof(int),
        typeof(int)
    };

    object[] parameterValues =
    { …
Run Code Online (Sandbox Code Playgroud)

c# reflection delegates unit-testing

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

如何使用 C# 设置 Excel 单元格的本地化短日期格式?

使用 C# 和 VSTO,可以使用以下代码设置 Excel 中单元格的类型:

\n\n
worksheet.Cells[i, j].NumberFormat = magicString;\n
Run Code Online (Sandbox Code Playgroud)\n\n

,其中worksheet是类的对象Microsoft.Office.Interop.Excel.Worksheeti是单元格的行号,j是单元格的列号,magicString是定义单元格类型的一些字符串(注意:Excel 将类型称为format,但下面我使用词类型)。

\n\n

以下magicString定义了以下 Excel 类型:

\n\n
    \n
  • string magicString = "";- 定义“常规”Excel 类型;
  • \n
  • string magicString = "@";- 定义“文本”Excel 类型;
  • \n
  • string magicString = "0%";- 定义“百分比”Excel 类型。
  • \n
\n\n

当我想设置“日期”Excel类型时,情况会更复杂。复杂程度与Excel的本地化Windows系统的本地化有关。

\n\n

因此,例如,我有一个俄语版本的 Excel(特别是,所有类型都是用俄语编写的 Excel),我的 Windows 系统具有以下短日期格式:“dd.MM.yyyy”(可以找到此设置在控制面板 > 区域和语言 > 格式中)。我有英文版的 Windows,但这完全不起作用。

\n\n

因此,如果我magicString …

c# format excel types date

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

标签 统计

c# ×2

date ×1

delegates ×1

excel ×1

format ×1

reflection ×1

types ×1

unit-testing ×1