小编luc*_*uke的帖子

隐藏构造函数的嵌套类在c#中是不可能的?

我最近做了一些编程,遇到了一个问题,我在c#中发现了一些奇怪的问题.(至少对于我来说)

public class Foo
{
    //whatever
    public class FooSpecificCollection : IList<Bar>
    {
         //implementation details
    }
    public FooSpecificCollection GetFoosStuff()
    {
         //return the collection
    }
}
Run Code Online (Sandbox Code Playgroud)

我希望Foo的消费者能够获得对FooSpecificCollection的引用,甚至对它执行一些操作.甚至可能将它设置为Foo的其他属性或像这样的smth,但不能创建此类的实例.(应该能够实现此集合的唯一类应该是Foo.

我的要求真的那么牵强吗?我知道人们更明智地定义了c#,但是不应该有这样一个选项,即父类可以创建一个嵌套的类实例,但没有其他人不能.

到目前为止,我创建了一个解决方案,通过属性创建一个抽象类或接口,并实现一个在其他任何地方都无法使用的具体私有类.

这是处理这种情况的正确方法吗?

c# language-features programming-languages

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

Win 2008 r2 x64服​​务器是否已安装.net 3 sp1软件包?

与标题相同?我有一个提到操作系统的测试服务器,我的应用程序是基于.net 3.5.我想知道win 2008 r2是否附带.net 3.5的服务包1.它是否与.net 3.5 sp1系列更新一样好,因为在我下载更新后,安装程序说我没有更新所需的软件.一些赢得2008年的大师可能会向我解释一下吗?谢谢卢克

installation servicepacks .net-3.5 windows-server-2008

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

SQL 2005/8古怪更新"黑色艺术"

大家好,所有SQL Server Blackbelt大师都在那里.

我有一个我需要解决的简单问题.我想在桌子上做一些奇怪的更新.表的具体结构并不重要,我的问题基本上可以简化为以下一个:

update SalesTotal
set @total = total = @total + sales,
@flag = flag = case when @flag = 1 then 0 
                    when @total > x then 1
                    else 0 end
Run Code Online (Sandbox Code Playgroud)

问题是我可以相信@total变量会有一个新值,即.将在第二个设置部分之前执行,或者它是否包含"旧"值(来自先前的赋值),或者它是未定义的.我现在一直在追求这个问题,并且找不到解决方案,这对我的更新非常重要(我想一次更新一个表).我想要更新的值之一取决于另一个值(在同一行中),因此它在单个更新中工作的唯一方法是它是否有效.

希望你能帮我

sql t-sql sql-server sql-update

2
推荐指数
1
解决办法
1752
查看次数

C#类型推断:如何正确定义方法约束?

嗨,我很难做C#类型推断做我想要的.我有一个非常特殊的情况,我有很多变量的味道

ConcurrentDictionary<T, IDictionary<U, V> >
Run Code Online (Sandbox Code Playgroud)

其中T,U,V可以是一些随机类型,如long,int或其他类型.

我想编写适用于这类变量的方法 - 特别是检查它们的直方图.

所以我写了一个方法

public static IOrderedEnumerable<Tuple<int,int>> GetDictionaryHistogram<T, U, V, W>(T dictionary) where T : ConcurrentDictionary<U, IDictionary<V, W>>
{
    return dictionary.Select(p => p.Value.Count)
                     .GroupBy(p => p)
                     .Select(p => new Tuple<int, int>(p.Key, p.Count()))
                     .OrderBy(p => p.Item1);
}
Run Code Online (Sandbox Code Playgroud)

但是当我尝试调用它时,C#给出了一个错误,它无法推断出类型.例如,对类型的变量

ConcurrentDictionary<int,IDictionary<int, int> > foo;
Run Code Online (Sandbox Code Playgroud)

我收到错误:

错误118无法从用法中推断出方法"Auditor.AuditorHelpers.GetDictionaryHistogram(T)"的类型参数.尝试显式指定类型参数.

我做错了什么?

c# generics type-inference

2
推荐指数
1
解决办法
841
查看次数

可以在appinisghts中使用Row_number()或其他分析函数吗?

我有一个非常简单的问题,但我正在使用appInsights并且似乎无法弄清楚如何在aiql或任何函数中复制row_number()函数(没有分区感).

我有网页浏览表,我按会话和时间戳排序.我想在集合中添加一个rown_number列

pageViews | where timestamp > ago(14d) | order by session_id, timestamp desc
| extend rn =row_number() partition by session_id
Run Code Online (Sandbox Code Playgroud)

有没有人知道这是否可能在aiql中

azure azure-application-insights ms-app-analytics aiql

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