小编MD'*_*D's的帖子

Angular Jasmine - 类型“字符串”的参数不可分配给打字稿中类型“从不”错误的参数

我正在使用 Jasmine 3.6.0 和 typescript 4.1.5 在 tsconfig.json 文件中使用 "strict": false 编写 Angular 测试用例

我想监视名为“close”的组件方法,并根据我在下面编写的代码的语法

let spy = spyOn<MyComponent>(component,'close');
Run Code Online (Sandbox Code Playgroud)

它工作正常,但将源代码复制到不同的文件夹后,我安装了节点模块,并开始出现以下错误

“‘字符串’类型的参数不可分配给‘从不’类型的参数”

我知道这个问题被问了很多次,我尝试了这些解决方案,但我面临着同样的错误。我不明白实际的问题是什么,因为我的严格模式也关闭了。

jasmine typescript angular

22
推荐指数
2
解决办法
3万
查看次数

为什么不同计算机或操作系统上的相同文化的日期格式不同?

我在托管使用C#.net MVC开发的网站时遇到日期格式问题.

在我的开发机器(OS:Windows 7,.net Framework 4.5)中,西班牙语 - 巴拿马(es-PA)的日期格式为mm/dd/yy,而在服务器机器(OS:Windows 8,.net Framework 4.5)中,它给出了相同文化的d/m/yy格式.

我使用简单的控制台应用程序检查了它.

public static void Main()
{
    DateTime dt = DateTime.Now;
    Thread.CurrentThread.CurrentCulture = new CultureInfo("es-PA");

    Console.WriteLine(dt.ToString("d"));

    Console.ReadLine();
}
Run Code Online (Sandbox Code Playgroud)

开发机器的输出是:10/08/2015

服务器机器上的输出是:8/10/15

我还通过更改语言和区域进行检查,但两种机器的默认格式都不同.

为什么不同机器的格式在同一文化中有所不同?这有什么解决方案吗?

.net c# windows cultureinfo date-format

9
推荐指数
1
解决办法
880
查看次数

如何为Enum类型参数创建扩展方法?

以下是我将枚举值转换为Dictionary的代码.

public static Dictionary<string, string> EnumToDictionary<T>() where T : struct, IConvertible
    {
        var oResult = new Dictionary<string, string>();
        if (typeof(T).IsEnum)
            foreach (T oItem in Enum.GetValues(typeof(T)))
                oResult.Add(oItem.ToString(), oItem.ToString());
        return oResult;
    }
Run Code Online (Sandbox Code Playgroud)

这是我的枚举

public enum MyEnum
{
    Value1,
    Value2,
    value3
}
Run Code Online (Sandbox Code Playgroud)

目前我正在调用这种方法

var result=EnumToDictionary<MyEnum>();
Run Code Online (Sandbox Code Playgroud)

但我需要使用那种方法

var result=MyEnum.EnumToDictionary();
Run Code Online (Sandbox Code Playgroud)

或任何其他方式,如字符串扩展方法.

c# extension-methods enums

5
推荐指数
1
解决办法
1863
查看次数

在处理多个文本框的获取和丢失焦点事件时,焦点和失去焦点都是重复事件调用,它进入无限循环

以下是我的代码,用于处理表单中可用的所有文本框的gotfocus和lostfocus事件.

private void Form1_Load(object sender, EventArgs e)
    {

        foreach (Control c in this.Controls)
        {
            if (c is TextBox)
            {
                c.GotFocus += new System.EventHandler(this.txtGotFocus);
                c.LostFocus += new System.EventHandler(this.txtLostfocus);
            }
        }
    }
    private void txtGotFocus(object sender, EventArgs e)
    {
        TextBox tb = (TextBox)sender;
        if (tb != null)
        {
            tb.BackColor = Color.Silver;
            tb.BorderStyle = BorderStyle.FixedSingle;
        }

    }
    private void txtLostFocus(object sender, EventArgs e)
    {

        TextBox tb = (TextBox)sender;
        if (tb != null)
        {
            tb.BackColor = Color.White;
            tb.BorderStyle = BorderStyle.Fixed3D;
        }
    }
Run Code Online (Sandbox Code Playgroud)

它可以在第一个文本框中正常工作,但是当我按Tab键转到下一个文本框时,它将重复调用这两个事件,文本框的行为就像闪烁一样.一段时间后错误信息显示在代码中:

在类型为"System.Windows.Forms!System.Windows.Forms.NativeMethods …

.net c# events winforms

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