我有一个字符串"246246.246",我想传递给IConvertable接口,ToInt16,ToInt32,ToIn64.将带小数位的字符串解析为整数的最佳方法是什么?
这是一个解决方案,但有更好的解决方案吗?
string value = "34690.42724";
Convert.ToInt64(Convert.ToDouble(value));
Run Code Online (Sandbox Code Playgroud) 我有一个简单的场景,可能会或可能不会.我有一个包含整数的类,为此我会尽可能简单:
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()函数正常工作,因为我编写了它?这甚至可能吗?我认为这可以使用显式/隐式运算符来完成,但我无法弄明白.
我试图找到类似于Visual Studio内置的树视图,它允许你遍历一个类.是否有一个基本的库/类基本上包含一个反射数据的树,它遍历一个类及其子类?我想要代码,我对单独的应用程序不感兴趣.
我认为用反射实现它并不困难,但我希望其他人已经做过了.
我正在创建一系列包含基本属性的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中获得可修改的继承,因为我可能想要一些可修改但不可删除的东西.这些特定的类不是我的问题,我只是用它们来说明我的问题.
是否存在通过允许函数体模仿抽象类的设计模式,但允许多个继承者如接口?
我有一个基类,它接受一个通用参数.然后我有几个继承自这个基类的类.子类是否有一种简单的方法来固定基类中的工厂?
例
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,但这会破坏继承点.
这样做有更好,更标准化的方法吗?
假设我有一个简单的类添加:
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)