小编Mik*_*ike的帖子

将字符串十进制转换为int

我有一个字符串"246246.246",我想传递给IConvertable接口,ToInt16,ToInt32,ToIn64.将带小数位的字符串解析为整数的最佳方法是什么?

这是一个解决方案,但有更好的解决方案吗?

string value = "34690.42724";
Convert.ToInt64(Convert.ToDouble(value));
Run Code Online (Sandbox Code Playgroud)

c# parsing

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

C#隐式/显式类型转换

我有一个简单的场景,可能会或可能不会.我有一个包含整数的类,为此我会尽可能简单:

public class Number
{
    public int Value {get; set;}
    public string Name {get; set;}
}

public static void Print(int print)
{
    Console.WriteLine(print);
}

public static string Test()
{
    Number num = new Number (9, "Nine");
    Print(num); //num "overloads" by passing its integer Value to Print.
}

// Result
// 9
Run Code Online (Sandbox Code Playgroud)

如何使Test()函数正常工作,因为我编写了它?这甚至可能吗?我认为这可以使用显式/隐式运算符来完成,但我无法弄明白.

.net c# type-conversion implicit-conversion

8
推荐指数
1
解决办法
8316
查看次数

C#反射树

我试图找到类似于Visual Studio内置的树视图,它允许你遍历一个类.是否有一个基本的库/类基本上包含一个反射数据的树,它遍历一个类及其子类?我想要代码,我对单独的应用程序不感兴趣.

我认为用反射实现它并不困难,但我希望其他人已经做过了.

c# reflection

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

C#:具有非抽象计算属性的多重继承

我正在创建一系列包含基本属性的Interfaces/Abstract类,我想要计算属性和多重继承.

public abstract class /interface Modifiable
{
   public DateTime ModifiedDate {get; set;}

   public boo ModifiedToday
   {
     get { return DateTime.Now.AddDays(-1).CompareTo(ModifiedDate) >= 0; }
   } 

   public bool ModifiedInLastWeek
   {
     get { return DateTime.Now.AddDays(-7).CompareTo(ModifiedDate) >= 0; }
   }
}

public abstract class /interface Deletable
{
   public DateTime DeletionDate {get; set;}    

   public bool Deleted
   {
     get { return DeletionDate != default(DateTime) }
   }
}
Run Code Online (Sandbox Code Playgroud)

然后我有一个继承自这两个Interfaces/Abstract类的类.

public class Something : Modifiable, Deletable 
{
  //
}
Run Code Online (Sandbox Code Playgroud)

但是一个类不能从两个抽象类继承.所以我需要使用接口,但是使用接口我不能拥有方法体.然后我必须在多个类中定义相同的确切函数,以使用接口实现这些简单的bool属性.

我也不想从Deletable中获得可修改的继承,因为我可能想要一些可修改但不可删除的东西.这些特定的类不是我的问题,我只是用它们来说明我的问题.

是否存在通过允许函数体模仿抽象类的设计模式,但允许多个继承者如接口?

c# inheritance abstract-class

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

C#:通用继承工厂

我有一个基类,它接受一个通用参数.然后我有几个继承自这个基类的类.子类是否有一种简单的方法来固定基类中的工厂?

class BaseClass<T>
{
     T Value {get; set;}
     string Name {get; set;}

     public static BaseClass<T> Factory(T Value)
     {
        return new BaseClass<T>(Value); 
     }
}

class ChildClass : BaseClass<int>
{
     public void Test()
     {
         // I want this below to work
         // but Factory() returns a BaseClass
         ChildClass bs = ChildClass.Factory(10);
     }
}
Run Code Online (Sandbox Code Playgroud)

我在代码中注意到了我想要的工作.我可以想出一种方法来解决这个问题,方法是将一个隐式运算符添加到从BaseClass转换为ChildClass的BaseClass或SubClass.

我也可以明确地将Factory添加到ChildClass,但这会破坏继承点.

这样做有更好,更标准化的方法吗?

c# inheritance

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

C#:使用对象初始化程序语法执行条件

假设我有一个简单的类添加:

public class Multiply
{
     public int A {get; set;}
     public int B {get; set;}
     public int C {get; set;}

     public List<int> Result {get; set;}

     public void Calculate()
     {
         if (A != 0 && B!= 0 && C != 0)
         {
           Result.Add(A);
           Result.Add(B);
           Result.Add(C);
           Result.Add(A * B);
           Result.Add(A * C);
           Result.Add(B * C);
           Result.Add(A * B * C);
         }
     }
}
Run Code Online (Sandbox Code Playgroud)

上面的类模拟了我的实际应用.我有一系列设置的参数,在本例中为A,B和C.然后我执行Calculate并使用Multiply对象的Result属性来访问结果.

(可能有更好的方法来完成这个模板;想到延迟加载.如果你想建议一个更好的模板,那就不是我的问题的目的;它只是一个简单的例子来说明我的问题.)

这是我的问题:

如果我正在使用Object Intializer语法:

Multiply m = new Multiplier()
{
   A = 1,
   B = 2,
   C = …
Run Code Online (Sandbox Code Playgroud)

c# constructor

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