问题列表 - 第4605页

在C#中使用带有泛型的访问者模式

我想知道以下是否是访客模式的可接受用途.从Accept()或Visit()调用返回时我感到有点不舒服 - 这是否适合使用此模式,如果没有,为什么不呢?

注意:长代码示例的道歉,似乎有必要了解我正在做的事情,因为访问者似乎总是有点参与......

interface IAnimalElement<T>
{
   T Accept(IAnimalVisitor<T> visitor);
}

interface IAnimalVisitor<T>
{
    T Visit(Lion lion);
    T Visit(Peacock peacock);
    T VisitZoo(List<Animal> animals);
}

abstract class Animal
{
    public int Age { get; protected set; }
}

class Lion : Animal, IAnimalElement<int>
{
    public Lion(int age)
    {
        Age = age;
    }

    public int Accept(IAnimalVisitor<int> visitor)
    {
        return visitor.Visit(this);
    }
}

class Peacock : Animal, IAnimalElement<int>
{
    public Peacock(int age)
    {
        Age = age;
    }

    public int Accept(IAnimalVisitor<int> visitor)
    { …
Run Code Online (Sandbox Code Playgroud)

c# design-patterns visitor

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

算法的复杂性

我会有一个相当普遍的问题.除了作为程序员在学校之外,您是否曾经必须真正计算(例如在纸上)算法的复杂性?如果......你能给我一个例子吗.

谢谢 :)

algorithm complexity-theory

5
推荐指数
2
解决办法
1055
查看次数

C#如何连接到MS Access 2007

我在连接到MS Access DB 2007时遇到问题.代码:

private void btnSave_Click(object sender, EventArgs e)
    {
        OleDbConnection Conn = new OleDbConnection();

        try
        {
            string conn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source="+ Directory.GetCurrentDirectory() +"\\dvd_manager.accdb;Persist Security Info=False;";
            Conn.ConnectionString = conn;

            Conn.Open();

            int i = cbbLocatie.SelectedIndex + 65;
            char c = (char)i;

            string sql = "INSERT INTO DVD (titel, locatie)VALUES(@titel, @locatie)";
            OleDbCommand Com = new OleDbCommand();
            Com.CommandText = sql;
            Com.Connection = Conn;

            OleDbParameter Param = new OleDbParameter("@titel", txtTitle.Text);
            Com.Parameters.Add(Param);

            Param = new OleDbParameter("@locatie", c);
            Com.Parameters.Add(Param);

            Com.ExecuteNonQuery();
            Conn.Close();

            MessageBox.Show("Data is opgeslagen " …
Run Code Online (Sandbox Code Playgroud)

c#

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

C/C++中的四元数库

在C/C++中进行四元数计算的任何好的库?

旁注:任何好的教程/示例?我已经谷歌了,并且去了前几页,但也许你有一些来自compsci或数学课程的演示/实验室你可以/将分享?

谢谢

c++ math quaternions

25
推荐指数
4
解决办法
3万
查看次数

什么是向量以及它们如何在编程中使用?

我熟悉矢量的数学/物理概念作为幅度和方向,但我也在编程的上下文中不断引用向量(例如C++似乎有一个stl :: vector库出现了经常在SO).

我从上下文中得到的直觉是,它们是一个相当原始的构造,最常用于表示可变长度数组的行(按照我认为的大小存储它的大小),但是如果有人可以的话,它会非常有用为我提供了更完整的解释,最好包括它们在实践中的使用方式和原因.

computer-science vector

38
推荐指数
3
解决办法
6万
查看次数

基于XPath创建XML节点?

有没有人知道从XPath表达式以编程方式创建XML层次结构的现有方法?

例如,如果我有一个XML片段,例如:

<feed>
    <entry>
        <data></data>
        <content></content>
    </entry>
</feed>
Run Code Online (Sandbox Code Playgroud)

给定XPath表达式/ feed/entry/content/@ source我会:

<feed>
    <entry>
        <data></data>
        <content @source=""></content>
    </entry>
</feed>
Run Code Online (Sandbox Code Playgroud)

我意识到使用XSLT是可能的,但由于我正在尝试完成的动态特性,固定转换将无法工作.

我在C#工作,但如果有人使用其他语言的解决方案,请加入.

谢谢您的帮助!

c# xml xpath

48
推荐指数
5
解决办法
4万
查看次数

检测C#应用程序中的死锁

可能重复:
C#/ .NET分析工具,用于查找竞争条件/死锁

我正在调试一个应用程序,我怀疑它正在陷入僵局并挂起.但是,这只会每隔几天发生一次,并且它永远不会发生在我的计算机上,因此我无法将调试器挂钩.是否有任何实用程序或方法可以用来查询正在运行的应用程序,并找出哪些方法/锁定/它是什么死锁?

更新:通常,应用程序在客户位置运行,我无法访问该计算机,并且我不太愿意让他们安装大量软件.

c# multithreading deadlock

22
推荐指数
3
解决办法
2万
查看次数

StructureMap和扫描组件

所以,我有一个使用StructureMap的.NET解决方案,我想让StructureMap读取一个外部程序集,该程序集实现该解决方案中项目的接口并为其定义注册表项.

我的解决方案的StructreMap配置:

ObjectFactory.Initialize(registry =>
{
  registry.Scan(assembly =>
   {
     assembly.TheCallingAssembly();

     //Telling StructureMap to sweep a folder called "extensions" directly
     //underneath the application root folder for any assemblies found in that folder
     assembly.AssembliesFromPath("extensions", addedAssembly => addedAssembly.GetName().Name.ToLower().Contains("extension"));

     //Direct StructureMap to add any Registries that it finds in these assemblies, assuming that all the StructureMap directives are
     //contained in registry classes
     assembly.LookForRegistries();
   });
});
Run Code Online (Sandbox Code Playgroud)

非常简单,我告诉它将调用程序集和程序集从目录添加到程序集集合中.我调试了程序集变量,它确实找到了所有程序集(包括扩展目录中的程序集).

在我创建的DLL项目中,我独立于原始解决方案,我有一个接口的实现(我从原始解决方案中引用了interfaces项目),并编写了一个非常简单的注册表:

public class ProductMockRegistry : Registry
{
    public ProductMockRegistry()
    {
        ForRequestedType<IProductRepository>().AddInstances(repository =>
        {
            repository.OfConcreteType<ProductMockRepository>();
        });
    }
}
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是,StructureMap没有在外部DLL中找到注册表.它发现DLL很好,但是当我告诉LookForRegistries时,它找不到它.

structuremap registry assemblies

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

如何在不使用Perl中的正则表达式的情况下在文件中找到特定行?

我有一个文件,我想使用File :: Slurp模块读取,然后搜索该文件的特定行.我知道Perl有正则表达式,但我正在搜索的字符串是用户生成的,所以不要担心逃避一切.我可以编写一个foreach循环来执行此操作但是想知道Perl中是否有一个函数可以为我执行此操作?我在网上看到的关于在Perl中查找文本的一切都使用正则表达式.

regex perl parsing

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

有没有一种简单的方法将我的XML对象转换回java中的String?

我有一个xml文档对象,我需要将其转换为字符串.

有这么简单的方法吗?

java xml

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