问题列表 - 第4300页

C# - 通用类中的阵列协方差

我知道C#支持数组中的协方差,如下所示:

object[] array = new string[3];
Run Code Online (Sandbox Code Playgroud)

但是当我尝试编译下面的代码时,我遇到了错误

class Dummy<K,T> where T:K
{
    public void foo()
    {
        K[] arr = new T[4];
    }
}
Run Code Online (Sandbox Code Playgroud)

它说"不能隐式地将类型'T []'转换为'K []'"

为什么我收到这个错误???

c# generics covariance

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

如何正确模拟和单元测试

我基本上都在努力教自己如何编码,我想遵循良好的做法.单元测试有明显的好处.在单元测试方面也有很多狂热,我更喜欢更实用的编码和生活方法.作为上下文,我正在编写我的第一个"真实"应用程序,它是使用asp.net MVC的无处不在的博客引擎.我通过自己的调整松散地遵循MVC店面架构.因此,这是我第一次真正涉足嘲弄对象.我将把代码示例放在问题的最后.

我很感激任何洞察力或外部资源,我可以用它来增加我对测试和模拟基础的理解.我在网上找到的资源通常是针对模拟的"方式",我需要更多地了解模拟的地点,原因和时间.如果这不是提出这个问题的最佳地点,请指出一个更好的地方.

我试图理解我从以下测试中获得的价值.UserService依赖于IUserRepository.服务层的价值是将逻辑与数据存储分开,但在这种情况下,大多数UserService调用只是直接传递给IUserRepository.没有太多实际逻辑需要测试的事实也可能是我担忧的根源.我有以下问题.

  • 感觉就像代码只是在测试模拟框架是否正常工作.
  • 为了模拟依赖关系,它使我的测试对IUserRepository实现有太多的了解.这是一个必要的邪恶吗?
  • 我从这些测试中获得了什么价值?被测服务的简单性是否让我怀疑这些测试的价值.

我正在使用NUnit和Rhino.Mocks,但我应该很清楚我要完成的事情.

    [SetUp]
    public void Setup()
    {
        userRepo = MockRepository.GenerateMock<IUserRepository>();
        userSvc = new UserService(userRepo);
        theUser = new User
        {
            ID = null,
            UserName = "http://joe.myopenid.com",
            EmailAddress = "joe@joeblow.com",
            DisplayName = "Joe Blow",
            Website = "http://joeblow.com"
        };
    }

    [Test]
    public void UserService_can_create_a_new_user()
    {
        // Arrange
        userRepo.Expect(repo => repo.CreateUser(theUser)).Return(true);

        // Act
        bool result = userSvc.CreateUser(theUser);

        // Assert
        userRepo.VerifyAllExpectations();
        Assert.That(result, Is.True, 
          "UserService.CreateUser(user) failed when it should have succeeded");
    }

    [Test]
    public void UserService_can_not_create_an_existing_user()
    {
        // Arrange
        userRepo.Stub(repo …
Run Code Online (Sandbox Code Playgroud)

unit-testing mocking

24
推荐指数
3
解决办法
9377
查看次数

设计SOA WCF Web服务时的最佳实践是什么?

给定运营合同,例如:

[OperationContract]
void Operation(string param1, string param2, int param3);
Run Code Online (Sandbox Code Playgroud)

这可以重新设计为:

[MessageContract]
public class OperationRequest
{
    [MessageBodyMember]
    public string Param1 { get; set; }

    [MessageBodyMember]
    public string Param2 { get; set; }

    [MessageBodyMember]
    public int Param3 { get; set; }
}

[MessageContract]
public class OperationResponse
{
}

[OperationContract]
OperationResponse Operation(OperationRequest request);
Run Code Online (Sandbox Code Playgroud)

我喜欢MessageContract的一件事是我对SOAP消息的格式有了更明确的控制.

同样,我可以编写几乎相同的代码,但使用DataContract:

[DataContract]
public class OperationRequest
{
    [DataMember]
    public string Param1 { get; set; }

    [DataMember]
    public string Param2 { get; set; }

    [DataMember]
    public int Param3 { get; set; …
Run Code Online (Sandbox Code Playgroud)

c# wcf web-services datacontract

11
推荐指数
2
解决办法
8962
查看次数

Drupal问题,如何创建快速内容模块?

嗨我需要在drupal中创建一个模块来显示一些数据,而不是一个drupal开发人员,在阅读了几个教程后,我似乎无法显示任何内容.

我有下一个代码:

<?php
function helloworld_perm() {
  return array('access helloworld content');
} 

function helloworld_listado(){
 return "yea";
}

function helloworld_menu(){
    $items = array();
    $items["listado"] = array(
        'title' => t('Listado de empresas'),
        'callback' => 'helloworld_listado',
        'access' => array('access helloworld content'),
        'type' => MENU_NORMAL_ITEM 
      );
    return $items;
}
Run Code Online (Sandbox Code Playgroud)

当我输入/ listado时,我获得拒绝访问您无权访问此页面.

知道我做错了什么吗?如果我转到admin-> module-> permissions,我已检查所有角色的权限以访问hellowold内容.

泰!

drupal

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

是否有人在Python /其他语言中使用元元类/元元元类?

我最近在python中发现了元类.

基本上python中的元类是一个创建类的类.有许多有用的理由可以解释为什么要这样做 - 例如任何类的初始化.在工厂上注册类,复杂的属性验证,改变继承的工作方式等等.所有这些不仅可能而且简单.

但在python中,元类也是普通类.所以,我开始想知道抽象是否可以有效地走高,而且在我看来它可以和那样:

  • 元类对应于或实现模式中的角色(如GOF模式语言中).
  • 元元类是模式本身(如果我们允许它创建表示抽象角色的类的元组,而不仅仅是单个类)
  • meta-meta-metaclass是一个模式工厂,它对应于GOF模式分组,例如Creational,Structural,Behavioral.一个工厂,你可以描述一个特定类型的问题的案例,它会给你一组解决它的类.
  • 一个meta-meta-meta-metaclass(据我所知),是一个模式工厂工厂,你可以描述你的问题类型的工厂,它会给你一个模型工厂.

我在网上找到了一些关于这个的东西,但大多数都不是很有用.一个问题是不同的语言稍微不同地定义了元类.

有没有其他人在python /其他地方使用过像这样的元类,或者看到过在野外使用过的,还是想过它?其他语言有哪些类似物?例如,在C++中,模板递归有多深?

我非常想进一步研究它.

python design-patterns factory metaprogramming metaclass

14
推荐指数
5
解决办法
1515
查看次数

如何从类型到TryParse方法?

我的特殊问题:

我有一个字符串,它在配置类中指定了aribitrary类型

Config.numberType = "System.Foo";

在哪里Foo是类型DecimalDouble

Type.GetType(Config.numberType)用来返回相应的类型.

如何从该类型中获得能够使用System.Foo.TryParse()

一些其他相关的查询

  • TryParse()可以从System.Foo.TryParse()以及访问foo.TryParse().这是否意味着fooC#中的某种类?这对我来说似乎很奇怪int,double等等实际上不仅仅是修饰符关键字.
  • 如何在这些情况下声明变量?- var似乎并非普遍可用,即仅在本地范围等.

c# parsing types

8
推荐指数
3
解决办法
7097
查看次数

为什么我不能双击按钮在Silverlight 2.0中创建事件处理程序?

在WPF,ASP.NET,WinForms中,我创建了一个按钮,双击它并填写事件处理程序.

在Silverlight(使用Visual Web Developer 2008)中,我创建了一个按钮,双击它但没有任何反应.

出于某种原因编写Silverlight应用程序时是否不支持此功能?我们是否必须手工编写这些事件处理程序?

asp.net silverlight wpf winforms

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

ungetc(或从K&R取消工作)的目的是什么?

任何人都可以向我解释ungetch的目的吗?这是来自K&R第4章,您可以在其中创建反向波兰计算器.

我没有调用ungetch就运行了程序,在我的测试中它仍然可以正常工作.

 int getch(void) /* get a (possibly pushed back) character */
    {
        if (bufp > 0)
        {
            return buf[--bufp];
        }
        else
        {
            return getchar();
        }
    }

    void ungetch(int c) /* push character back on input */
    {
        if (bufp >= BUFSIZE)
        {
            printf("ungetch: too many characters\n");
        }
        else
        {
            buf[bufp++] = c;
        }

}
Run Code Online (Sandbox Code Playgroud)

(我已经删除了getch中的三元运算符以使其更清晰.)

c kr-c kernighan-and-ritchie

10
推荐指数
2
解决办法
9696
查看次数

如何简单地为iPhone填充TableView

我有一个UITableView.如何简单地用三个元素填充它,例如"e1","e2","e3"?

cocoa-touch

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

Linq To Sql多次加入表

我是一个有点经验的Rails开发人员,我想我会试用ASP.NET的MVC版本.这样做我还决定尝试Linq-> Sql ...

我对Linq-> Sql处理连接的方式感到有点困惑.

我的架构的一个简单例子是:

书籍:
id
标题

类别:
id
名称

books_categories:
book_id
category_id

只需将这些表拖到.dbml文件中就好了.我在Book class books_categories上获得了一个属性,我期望的是一个属性,我可以迭代并直接获得Category类.

现在我必须做一些感觉非常错误的事情

        foreach (books_categories bc in book.books_categories)
        {
            category_names.Add(bc.Category.category.Trim());
        }
Run Code Online (Sandbox Code Playgroud)

[回复接受的答案]
我勉强接受了"编写自己的胶水代码"的答案.在继续我对Linq-> Sql的研究之后,我发现它显然正在慢慢放弃(更强大的IMO)实体框架.EF仍允许使用LINQ进行查询,并且可以很好地找出像Ruby的ActiveRecord这样的关系.

.net asp.net-mvc many-to-many join linq-to-sql

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