我正在组织一个库项目,我有一个名为的中央管理器类,Scenegraph以及生活在Scenegraph命名空间中的一大堆其他类.
我真的很想对场景图是MyLib.Scenegraph和其他类为MyLib.Scenegraph.*,但似乎这样做将是使所有其他类的内部类的唯一途径Scenegraph在Scenegraph.cs文件,这只是太笨拙.
相反,我已经将它组织为,Mylib.Scenegraph.Scenegraph并且MyLib.Scenegraph.*,哪种工作,但我发现Visual Studio在某些条件下会混淆我是否指的是类或命名空间.
有没有一种很好的方法来组织这个软件包,这样对于用户来说很方便,而不会在一个难以维护的混乱中将我的所有代码组合在一起?
我有使用Hector访问Cassandra的代码,当且仅当它们不存在时才需要动态创建列族.检查密钥空间中列族是否存在的正确方法是什么?
基本上,我想为所有ICollection <>类型编写一个包装器.让我们称之为DelayedAddCollection.它应该采取任何ICollection作为它.
此外,我需要访问该ICollection类型的泛型类型,因为Add方法需要将其参数限制为该类型.
我想象的语法看起来像这样......
public DelayedAddConnection<T>: where T:ICollection<U> {
....
public void Add(U element){
...
}
}
Run Code Online (Sandbox Code Playgroud)
这样做的真正正确语法是什么?
让我们说我有通用类Foo<T>.
我想要做的是为各种T中的每一个创建一个单例,然后通过T快速检索它们.
在伪代码中
STORE new Foo<int>
STORE new Foo<MyClass>
GET instance for MyClass -> returns the Foo<MyClass> created above.
Run Code Online (Sandbox Code Playgroud)
在Java中,我会创建一个字典,其中包含键和Foo<*>值的类型.
C#中的等效魔力是什么?