Redian新闻
>
大牛指教:新手List<>问题
avatar
大牛指教:新手List<>问题# DotNet - 窗口里的风景
d*8
1
定义了ListLong,
class ListLong:List{
.....
}
而下面这句在运行时出错,cannot cast object......
var s=(ListLong)(new List{1,2,3,4,5,6});
问题在哪儿呢?求大牛指教!
avatar
l*s
2
这样不允许。反过来可以。

【在 d******8 的大作中提到】
: 定义了ListLong,
: class ListLong:List{
: .....
: }
: 而下面这句在运行时出错,cannot cast object......
: var s=(ListLong)(new List{1,2,3,4,5,6});
: 问题在哪儿呢?求大牛指教!

avatar
d*8
3
我定义ListLong的目的是为了override List的ToString(),比如
List a={1,2,3,4,5,6};
a.ToString()的结果就是,1x2x3x4x5x6 e.g.
而我又不想定义function ToString(List a)而调用 ToString(a)来实现,因为这
样不方便chain methods。
请问怎么办呢?

【在 l*s 的大作中提到】
: 这样不允许。反过来可以。
avatar
v*n
6
一般不应该 override .net framework 里的东西吧,你可以用ListLong的ToString(),
override一下,或者用extension method (但是不能用ToString这个名字)

【在 d******8 的大作中提到】
: 我定义ListLong的目的是为了override List的ToString(),比如
: List a={1,2,3,4,5,6};
: a.ToString()的结果就是,1x2x3x4x5x6 e.g.
: 而我又不想定义function ToString(List a)而调用 ToString(a)来实现,因为这
: 样不方便chain methods。
: 请问怎么办呢?

avatar
d*8
7
就是用ListLong的ToString() override的

),

【在 v******n 的大作中提到】
: 一般不应该 override .net framework 里的东西吧,你可以用ListLong的ToString(),
: override一下,或者用extension method (但是不能用ToString这个名字)

avatar
l*s
8
Pass in的List{1,2,3,4,5,6}不受你控制吗?否则为什么不直接创建ListLong
object?

【在 d******8 的大作中提到】
: 定义了ListLong,
: class ListLong:List{
: .....
: }
: 而下面这句在运行时出错,cannot cast object......
: var s=(ListLong)(new List{1,2,3,4,5,6});
: 问题在哪儿呢?求大牛指教!

avatar
d*8
9
谢谢!就是这么解决的。

【在 l*s 的大作中提到】
: Pass in的List{1,2,3,4,5,6}不受你控制吗?否则为什么不直接创建ListLong
: object?

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。