小编Nik*_*wal的帖子

将泛型参数传递给非泛型方法

我正在尝试创建一个方法,将nullicbles舍入到给定的小数位.理想情况下,我希望这是一个通用的,以便我可以使用双打和小数作为Math.Round()许可.

我在下面编写的代码将无法编译,因为无法(可理解)解析该方法,因为无法知道调用哪个重载.这将如何实现?

internal static T? RoundNullable<T>(T? nullable, int decimals) where T : struct
{
    Type paramType = typeof (T);

    if (paramType != typeof(decimal?) && paramType != typeof(double?))
        throw new ArgumentException(string.Format("Type '{0}' is not valid", typeof(T)));

    return nullable.HasValue ? Math.Round(nullable.Value, decimals) : (T?)null; //Cannot resolve method 'Round(T, int)'
 }
Run Code Online (Sandbox Code Playgroud)

.net c# generics overloading

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

如何在第二台显示器上打开form2?

我从Form1创建Form2.我想在第二台显示器上打开Form2.我怎么能这样做?我用这个代码:

private void button1_Click(object sender, EventArgs e)
{
    Form2 dlg = new Form2();
    dlg.Show();
}
Run Code Online (Sandbox Code Playgroud)

如何为此更改此代码?谢谢大家.

c#

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

Linq语句中TSource的重点是什么?

许多语句(通常在Linq中看到)在编译或执行时不需要使用TSource.你为什么要指定TSource?

例:

 List<int> list = new List<int>(5) { 0, 1, 2, 0, 3 };

 int x = list.Where<int>(i => i == 0).FirstOrDefault<int>();
 int y = list.Where(i => i == 0).FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)

这些陈述有何不同?

c# linq

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

"类,结构或接口成员声明中的无效标记'{'"

我在以下C#代码中收到错误"类,结构或接口成员声明中的无效标记'{".

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication3
{
    class Program
    {
        static int a, b;
        void add(int x, int y);
        {
            int c= x+y;
            Console.WriteLine("addition is " + char);
        }

        static void Main(string[] args)
        {   

        }
   }
}
Run Code Online (Sandbox Code Playgroud)

非常感谢您对解决方案的帮助.

谢谢.

ANEES

c# token

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

具有布尔值的开关案例的奇怪行为

我的问题不是关于如何解决这个错误(我已经解决了)但是为什么这个错误带有布尔值.

我的功能是

private string NumberToString(int number, bool flag)
{
    string str;

    switch(flag)
    {
        case true: 
            str = number.ToString("00");
            break;
        case false:
            str = number.ToString("0000"); 
            break;
    }

    return str;
}
Run Code Online (Sandbox Code Playgroud)

错误是Use of unassigned local variable 'str'.布尔只能是真或假.因此它将填充str在任何一种情况下.那么为什么这个错误?

此外,如果在真假情况下我添加一个default案例,这个错误就消失了,但是仍然可以将bool与真假区分开来?

为什么这个奇怪的行为与bool变量?

.net c# boolean switch-statement

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

C#阻止从其他线程访问所有对象方法

我有一个对象,一次只能由一个Thread使用.例如,我的对象包含3个方法A,B并且C我想要锁定对象(所有方法/属性都被锁定),如果线程访问该方法A.

主要的困难是我无法修改该对象的代码.我必须在我调用对象的地方阻止多线程访问.

我的第一个想法是使用单例模式,但我没有设法让它工作!

c# multithreading locking

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

如何实现像StringCollection这样的默认方法和一些类呢?

在回答我的问题时,我发现了这个问题

StringCollection sc = new StringCollection();

sc.Add("Foo");
Run Code Online (Sandbox Code Playgroud)

但这可以写成

StringCollection sc = new StringCollection() {"Foo"};
Run Code Online (Sandbox Code Playgroud)

这不能写

StringCollection sc = new StringCollection() {new string[] {"Foo"} };
Run Code Online (Sandbox Code Playgroud)

这意味着Add方法被调用而AddRange不是.

如何创建一个可以具有在创建其对象时调用默认方法的功能的类?

.net c#

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

如何制作这样的数组

List<Customer> c= new List<Customer>()
{
    new Customer{Id = 1, Name = "Bruce"},
    new Customer{Id = 2, Name = "John"}
};
Run Code Online (Sandbox Code Playgroud)

我只知道

c.ForEach(o => str += o.Id.ToString() + ",");
Run Code Online (Sandbox Code Playgroud)

有什么方法可以简单吗?

我只想得到Id并制作Ids阵列 int[] Ids = new {Id = 1, Id = 2}

c# arrays

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

C#和VB.Net中相同程序的溢出行为的差异

我使用C#在.Net 3.5中运行了一个程序

try
{
    int i = 2147483647;

    Console.WriteLine((i * 100 / i).ToString());

    Console.ReadLine();
}
catch (Exception)
{                
    throw;
}
Run Code Online (Sandbox Code Playgroud)

当我在C#中运行该程序时,我没有得到异常(它输出"0").但是当我在VB.Net中运行这个程序时,它会导致"Arithmetic operation resulted in an overflow"异常

Try
    Dim i As Integer = 2147483647

    Console.WriteLine((i * 100 / i).ToString())

    Console.ReadLine()
Catch ex As Exception
    Throw
End Try
Run Code Online (Sandbox Code Playgroud)

为什么这两种语言之间的行为不同?

c# vb.net

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

WPF 在鼠标悬停时更改路径填充

我试图在 MouseOver 上将 Path Fill="#ff147f2e" 更改为较浅的颜色并撞到墙上。我只是不知道如何参数化这个特定的填充颜色。任何想法或指示。

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                xmlns:local="clr-namespace:Controller.Resources.Buttons">
    <Style x:Key="PowerButton" TargetType="{x:Type Button}">
        <Setter Property="SnapsToDevicePixels" Value="True"/>
        <Setter Property="OverridesDefaultStyle" Value="True"/>
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type Button}">                       
                    <Grid>                        
                        <!-- Layer 1/<Group>/<Group>/<Group>/<Path> -->
                        <Path Fill="#ff147f2e" Data="F1 M 104.825,50.080 C 104.825,77.693 82.440,100.078 54.826,100.078 C 27.213,100.078 4.825,77.693 4.825,50.080 C 4.825,22.466 27.213,0.081 54.826,0.081 C 82.440,0.081 104.825,22.466 104.825,50.080 Z"/>
                        <!-- Layer 1/<Group>/<Compound Path> -->
                        <Path Fill="#ffe5e5e5" Data="F1 M 55.146,74.711 C 41.972,74.711 31.256,63.993 31.256,50.821 C 31.256,42.275 35.873,34.323 43.305,30.073 C 44.939,29.139 47.022,29.706 47.958,31.340 C 48.893,32.974 48.325,35.057 46.691,35.992 C …
Run Code Online (Sandbox Code Playgroud)

c# wpf xaml

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