小编Sam*_*ell的帖子

查找Apache目录

我正在寻找一种方法来以编程方式检测Apache配置目录的位置以及配置文件的名称.如果是Ruby或Bash,则奖励积分.

ruby apache bash

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

为什么终结器总是被调用?

我运行了以下代码,发现终结器总是被调用。但很多文章都说终结器是非确定性的。

class Test
{
    Test()
    {
        throw new Exception();
    }

    ~Test()
    {
        Console.WriteLine("Finalizer is called");
    }

    static void Main()
    {
        try
        {
            new Test();
        }
        catch { }
    }
Run Code Online (Sandbox Code Playgroud)

.net c#

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

C#中C++引用类型的等价物

我在C#应用程序中使用用C++编写的dll.什么是等价物

  1. char const *
  2. unsigned short

在C#中

谢谢

c# const char

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

如何过滤列表?

这是一种方法,应该将已分配的用户从列表中取出,并将未分配的用户保留在列表中.GuidList在按钮点击时添加了userId.profileList用于填充gridView.

这是代码:

private VList<VW_profiles> FilterAssigned(VList<VW_profiles> profileList)
{
    VList<VW_profiles> sortedList = new VList<VW_profiles>();
    foreach(VW_profiles profile in profileList)
    {
        if(GuidList.Count > 0)
        {
            foreach(Guid userId in GuidList)
            {
                if(profile.UserId != userId)
                {
                    sortedList.Add(profile)
                }
            }
        }       
        else
        {
            sortedList = profileList;
        }
    }
    return sortedList;
}
Run Code Online (Sandbox Code Playgroud)

现在这是我的问题.Everythings似乎工作得很好,直到profileList中的所有项目也被添加到GuidList中.然后我们不再对两个Guid ID进行否定,而是再次开始添加所有人.有没有人有任何关于如何做到这一点的建议是一种更有效的方法,并且一旦我们把所有事情都拿出来就避免加入.

谢谢!

c# sorting loops generic-list

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

用于通知应用程序集合已更改的模式?

假设我有一个如下所示的基本界面:

public interface IObjectProvider
{
    IEnumerable<IObject> GetObjects();
}
Run Code Online (Sandbox Code Playgroud)

对象源是可能更新的某个后备存储,并且此接口的实现负责使用该后备存储.现在,我希望此接口的使用者能够在此接口提供的对象集合发生更改时执行操作.您将如何重构此界面以提供此功能?我希望结果可用于应用程序中的许多"提供者"接口,以获得良好的设计一致性.

示例:以下以简明易懂的方式提供此功能,但增加了重要的耦合(包括对.NET 4.0之前的代码中的WPF程序集的引用).我应该只使用它,因为我们知道一旦代码进入.NET 4.0,它将自动"更轻"吗?

public interface IObjectProvider
{
    ReadOnlyObservableCollection<IObject> Objects
    {
        get;
    }
}
Run Code Online (Sandbox Code Playgroud)

编辑1:

根据Reed的回答,我倾向于保持IObjectProvider接口不变,原因如下:

  • 这是一个新的应用程序,因此可以尽早记录设计,并始终保持一致性.
  • 声明对于所有提供者,如果提供者支持提供的集合发生更改的通知,则返回的值GetObjects()必然会实现INotifyCollectionChanged.

还有另外两个案例,我仍然需要在我的设计中考虑:

  • 提供的集合永远不会改变.
  • 提供的集合可能会更改,但客户端需要轮询是否需要更新.我是否可以声称应用程序中不存在此案例(这是一个好主意)?

.net design-patterns

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

System.Collection.Generic.IEnummerable <string> == string

我从数据库中获得用户,并且用户有一个帐户列表.我需要检查一个帐户的名称是否等于一个字符串.所以我选择了所有帐户,然后选择了名称:

var accounts = user.Select(u=> u.Accounts.Select(a => a.Name)).ToList();
Run Code Online (Sandbox Code Playgroud)

然后我在另一个之后检查一个名字:

for (int i = 0; i <= accounts.Count(); i++)
{
     if (accounts[i] == mandant)
         return true;
}
Run Code Online (Sandbox Code Playgroud)

但类型mandant= string
和类型accounts[i]=System.Collections.Generic.IEnummerable<string>

如何检查是否相等?

c#

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

从ANTLR4中的Parser访问解析数据

我正在通过我的自定义语法处理我的输入文件并提取令牌并将其返回到HashMap.在ANTLR 3中,我能够通过rule()在解析器上调用方法并获取HashMap类似的东西来解析文件parser.record.

这似乎在ANTLR 4中不起作用.我参考了这本书,看来我必须调用parser.init()才能开始解析但我在解析器中看不到任何方法.

我使用ANTLRWorks 2生成我的词法分析器和解析器文件.我没有生成监听器类.

antlrworks antlr4

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

标签 统计

c# ×4

.net ×2

antlr4 ×1

antlrworks ×1

apache ×1

bash ×1

char ×1

const ×1

design-patterns ×1

generic-list ×1

loops ×1

ruby ×1

sorting ×1