小编kvb*_*kvb的帖子

C#中的链接属性和意外结果

我只是快速阅读了这篇文章(特别是关于他选择使用结构/字段而不是类/属性的原因)并看到了这一行:

属性的结果不是真正的l值,因此我们不能执行类似Vertex.Normal.dx = 0的操作.属性的链接会产生非常意外的结果.

他在谈论什么样的意外结果?

.net c# struct properties value-type

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

使用mono.cecil将新构造函数添加到"existing"类型

我正在尝试将新的重载构造函数添加到现有类型.我尝试使用emit命名空间来完成它,但是创建的类型不会继承基类和所有其他方法.

在阅读了一些文章之后,我决定用.net框架内置类来实现它.

所以我得到了Mono.Cecil,但是找不到任何体面的例子来实现这个目标.

我遇到过一个复制方法的样本,但不是道具,字段等.

reflection reflection.emit mono.cecil

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

你如何向具有'params'构造函数的类发出声音?

这是我Package班级的定义:

type Package ([<ParamArray>] info : Object[]) =
    do
        info |> Array.iter (Console.WriteLine)

    member this.Count = info.Length
Run Code Online (Sandbox Code Playgroud)

这是IL,我正在尝试:

let ilGen = methodbuild.GetILGenerator()

ilGen.Emit(OpCodes.Ldstr, "This is 1")
ilGen.Emit(OpCodes.Ldstr, "Two")
ilGen.Emit(OpCodes.Ldstr, "Three")
ilGen.Emit(OpCodes.Newobj, typeof<Package>.GetConstructor([|typeof<Object[]>|]))
ilGen.Emit(OpCodes.Ret)
Run Code Online (Sandbox Code Playgroud)

但这似乎不起作用.我试过了:

ilGen.Emit(OpCodes.Newobj, typeof<Package>.GetConstructor([|typeof<String>; typeof<String>; typeof<String>|]))
Run Code Online (Sandbox Code Playgroud)

以及:

ilGen.Emit(OpCodes.Newobj, typeof<Package>.GetConstructor([|typeof<Object>; typeof<Object>; typeof<Object>|]))
Run Code Online (Sandbox Code Playgroud)

但它只是嘲笑我.我究竟做错了什么?

reflection f# cil reflection.emit

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

C#:泛型的语义?

我有一个清单:

private readonly IList<IList<GameObjectController>> removeTargets;
private readonly IList<IList<GameObjectController>> addTargets;
Run Code Online (Sandbox Code Playgroud)

PickUp继承自GameObjectController.但是,当我尝试这个:

public IList<PickUp> Inventory

// ... 

gameObjectManager.MoveFromListToWorld(this, user.Model.Inventory);

// ...

    // This queues everything up to be removed, until ProcessMoves...() is called
    public void MoveFromWorldToList(GameObjectController removedFromWorld, IList<GameObjectController> addTarget)
    {
        toBeRemoved.Add(removedFromWorld);
        addTargets.Add(addTarget);
    }

// ...

    /// <summary>
    /// Removes all the GameObjects on which removal is requested from the world.
    /// </summary>
    public void ProcessMovesFromListToWorld()
    {
        for (int i = 0; i < toBeAdded.Count; i++)
        {
            GameObjectController moved = …
Run Code Online (Sandbox Code Playgroud)

c# generics semantics

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

F#交互式窗口问题

我在http://www.tryfsharp.org上的交互式窗口中收到此错误.它在视觉工作室工作正常,我不知道如何解决它.任何帮助将不胜感激

let randomNumberGenerator count =
    let rnd = System.Random()
    List.init count (fun numList -> rnd.Next(0, 100))

let rec sortFunction = function
| [] -> []
| l -> let minNum = List.min l in
       let rest = List.filter (fun i -> i <> minNum) l in
       let sortedList = sortFunction rest in
       minNum :: sortedList

let List = randomNumberGenerator 10
let sortList = sortFunction List
printfn "Randomly Generated numbers in a NON-SORTED LIST\n"
printfn "%A" List
printfn "\nSORTED …
Run Code Online (Sandbox Code Playgroud)

f# f#-interactive

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