问题列表 - 第3887页

C# - 泛型和继承问题

我有继承和泛型的问题.这是解释我的问题的代码:

namespace TestApplication
{
    public class MyClass<T>
    {
        private T field;

        public MyClass(T field)
        {
            this.field = field;
        }
    }

    public class MyIntClass : MyClass<int>
    {
        public MyIntClass(int field)
            : base(field)
        {
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

当我尝试做这样的事情时:

MyClass<int> sth = new MyClass<int>(10);
MyIntClass intsth = (MyIntClass) sth;
Run Code Online (Sandbox Code Playgroud)

我收到强制转换异常:无效的强制转换异常.无法将'TestApplication.MyClass`1 [System.Int32]'强制转换为'TestApplication.MyIntClass'.

更有甚者,我无法创建强制转换运算符:

public static implicit operator MyIntClass(MyClass<int> myClass)
Run Code Online (Sandbox Code Playgroud)

因为:'TestApplication.MyIntClass.implicit运算符TestApplication.MyIntClass(TestApplication.MyClass)':不允许在基类之间进行用户定义的转换

我需要创建如上所述的强制转换.我不知道为什么我不能从基类类型转换.我怎么解决这个问题?提前致谢.

编辑

谢谢你的回答.现在我看到我无法从基类转换为派生类,我发现它与泛型没有任何关系.但为什么我不能从基类创建用户定义的转换?我有一个返回基类的方法.我能够定义转换方法,但创建一个转换操作符imho将是一个更好的解决方案.

c# generics inheritance casting

7
推荐指数
2
解决办法
7729
查看次数

initWithFrame没有被调用,但是awakeFromNib是

我试图继承NSOutlineView.这是我的代码:

OutlineViewSublcass.h:

#import <Cocoa/Cocoa.h>

@interface OutlineViewSubclass : NSOutlineView {

}

@end
Run Code Online (Sandbox Code Playgroud)

OutlineViewSubclass.m:

#import "OutlineViewSubclass.h"

@implementation OutlineViewSubclass

- (id)initWithFrame:(NSRect)frame
{
    self = [super initWithFrame:frame];
    printf("debug A\n");
    return self;
}

- (void)awakeFromNib
{
    printf("debug B\n");
}

@end
Run Code Online (Sandbox Code Playgroud)

调试输出是:

debug B
Run Code Online (Sandbox Code Playgroud)

为什么不(id)initWithFrame:(NSRect)frame被召唤?

cocoa

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

Web应用程序中的iPhone加速度计

我希望我的网站根据设备位置更改其布局.该站点有2种布局类型:垂直(高度>宽度)ang水平(宽度>高度).

你看到任何解决方案吗?

upd:我没有看到更改站点布局的任何复杂性.我想知道是否有任何事件需要处理.ps如果我将设备旋转90度,iphone的浏览器会改变它的方向吗?Dave,tnx进行校对.

iphone

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

你如何分发.NET应用程序?

在开始开发桌面应用程序之前,我想知道如果我在.NET中构建它会有多大的安装程序?

现在.NET可能已经有5年了.我们还需要在应用程序中包含运行时间吗?或者我们可以假设大多数用户会在他们的系统上安装它吗?Vista是否预装了.NET?最后我们可以安全地假设大多数XP用户已经在他们的系统上安装了CLR吗?

.net clr installer

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

为什么C#和Java会烦扰"新"运算符?

为什么新的运算符存在于C#和Java等现代语言中?它纯粹是一个自我记录的代码功能,还是它可以用于任何实际目的?

例如以下示例:

Class1 obj = new Class1();

Class1 foo()
{
    return new Class1();
}
Run Code Online (Sandbox Code Playgroud)

像Pythonesque写的那样容易阅读:

Class1 obj = Class1();

Class1 foo()
{
    return Class1();
}
Run Code Online (Sandbox Code Playgroud)

编辑:考恩澄清问题:考恩为什么选择这种语法?

language-design new-operator

17
推荐指数
4
解决办法
4044
查看次数

功能应用:为什么在这里使用$?

不久前,我问了一个关于$问题,并得到了有用的答案 - 事实上,我以为我明白了如何使用它.

看来我错了:(

此示例显示在教程中:

instance Monad [] where
   xs >>= f = concat . map f $ xs
Run Code Online (Sandbox Code Playgroud)

我不能为我的生活看到为什么在那里使用$; ghci也没有帮助我,因为我在那里进行的测试似乎表明与简单省略$的版本等效.有人可以为我澄清一下吗?

haskell function operators pointfree

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

Grails域类,字符串字段TEXT和LONGTEXT

在Grails域类中,如何为String字段设置约束,使其MySQL列类型为TEXT或LONGTEXT?

到目前为止,我最好的方法是设置约束的大小:

myTextField(size:0..65535)
Run Code Online (Sandbox Code Playgroud)

这导致TEXT

myTextField(size:0..2147483646)
Run Code Online (Sandbox Code Playgroud)

结果在LONGTEXT(2147483646 = 2 ^ 32/2 - 1 - 1)

是否有更清洁的方式来指定大小?基本上我想要全系列的TEXT或LONGTEXT,而不必硬编码一堆大小的值.

grails

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

Concat JSON对象

我有两个具有相同结构的JSON对象,我想使用Javascript将它们连接在一起.是否有捷径可寻?

javascript json

66
推荐指数
9
解决办法
19万
查看次数

WPF生产准备好了吗?

我想知道是否有人在那里有WPF应用程序开发的经验 - 也许更有趣 - 在生产中运行WPF.

它是否足够成熟,可用于大型项目?有哪些明显的陷阱?任何最佳做法?(WPF中的数据绑定看起来很漂亮,但是它可以在"真正的"项目中运行吗?)

提前致谢!

.net wpf

11
推荐指数
3
解决办法
1258
查看次数

如何在Perl的DBI中使用绑定查询选择空行?

我希望能够将某些内容传递给SQL查询,以确定是否只选择某个列为null的那些查询.如果我只是构建一个查询字符串而不是使用绑定变量,我会做类似的事情:

if ($search_undeleted_only)
{
    $sqlString .= " AND deleted_on IS NULL";
}
Run Code Online (Sandbox Code Playgroud)

但我想使用绑定查询.这会是最好的方式吗?

my $stmt = $dbh->prepare(...
    "AND (? = 0 OR deleted_on IS NULL) ");
$stmt->execute($search_undeleted_only);
Run Code Online (Sandbox Code Playgroud)

sql perl dbi

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