小编use*_*273的帖子

c#使用泛型的Upcast

我已经定义了一个带有抽象约束的抽象类:

abstract class Asset<P> where P : Parm { }
abstract class Parm { }

class StockParm : Parm { }
class Stock : Asset<StockParm> { }

class BondParm : Parm { }
class Bond : Asset<BondParm> { }

List<Asset<Parm>> assets = new List<Asset<Parm>>();
Stock stock;
assets.Add(stock);
Run Code Online (Sandbox Code Playgroud)

但是我收到了错误消息:

"无法将类型股票转换为资产"

有没有办法列出所有assets

谢谢

c# generics casting abstract

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

在循环中分配一个函数

我试图为循环中的每个元素分配一个函数。我希望函数使用变量的值,但它们使用变量的最后一个值:

assign.instrumentslist = function()
{
  for(instList in lists.instruments)
  {
  assign(
      paste("test", instList, sep="."),
      function() {print(instList)},
      envir = .GlobalEnv
      )
   }
}

lists.instruments = c("CL", "HO", "GC")
assign.instrumentslist()
test.CL()
# return "GC"
Run Code Online (Sandbox Code Playgroud)

谢谢

r

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

标签 统计

abstract ×1

c# ×1

casting ×1

generics ×1

r ×1