小编jam*_*o00的帖子

ASP.NET MVC ViewModel和DropDownList

我的ViewModel中有2个属性

class ViewModel1
{
    Dictonary<int, string> PossibleValues {get;set;}//key/value
    int SelectedKey {get;set}
}
Run Code Online (Sandbox Code Playgroud)

我想使用Html.DropDownListFor编辑它

我想让MVC自动将数据序列化到ViewModel中或从ViewModel序列化,以便我可以进行以下操作

public ActionResult Edit(ViewModel1 model) ...
Run Code Online (Sandbox Code Playgroud)

实现这一目标的最佳方法是什么?

c# asp.net-mvc viewmodel

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

具有句点的ASP.NET MVC路由ID

如果我有以下路线:

{controller}/{action}/{id}
Run Code Online (Sandbox Code Playgroud)

我查看以下网址:

c1/a1/abc.
Run Code Online (Sandbox Code Playgroud)

它不起作用.仅当句点位于URL的末尾时才会发生这种情况.有什么办法让ASP.NET MVC识别出作为ID的一部分?

c# url asp.net-mvc routing

5
推荐指数
2
解决办法
6599
查看次数

F#短路模式匹配

F#的新手.以下问题可能毫无意义.

// an attempt at Huffman encoder 
let encodeValue x y = function ...

match ((encodeValue left value), (encodeValue right value)) with
    | ((true, encoded), (_, _)) -> (true, encoded + "1")
    | ((_, _), (true, encoded)) -> (true, encoded + "0")
    | ((false, _), (false, _)) -> (false, "")
    | _ -> failwith "Error"
Run Code Online (Sandbox Code Playgroud)

在真实环境中,encodeValue可能非常昂贵.是否有可能(或合理)要求F#先评估encodeValue left value,尝试匹配,然后encodeValue right value在必要时执行?

.net f# functional-programming visual-studio

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

Mono Tasklet/Co-Routines的开销

新的Mono Continuations/Tasklet框架的主要性能开销(gc/stack复制......)是什么?

这个开销(协程性能/原始性能)与其他框架(如Lua Coroutine和无堆栈python)相比如何?

在Mono 2.6中将添加延续/协程支持.我构建了一个svn版本并使用以下代码来估计其开销

static void Main()
{
    Console.WriteLine("starting.,..");
    for(int i = 0; i < 10000; i++)
    {
        MicroThread t1 = new MicroThread(Run1);
        t1.Start();
    }
    Scheduler.Run();
    Console.WriteLine("starting raw loop.,..");
    int x = 2;
    for (int i = 0; i < 10000 * 400; i++ )
    {
        x++;
    }
    Console.WriteLine("1finished.,.. " + x.ToString());
    Console.ReadLine();
}

static void Run1()
{
    for (int y = 0; y < 400; y++)
    {
        MicroThread.CurrentThread.Yield();
    }
}
Run Code Online (Sandbox Code Playgroud)

微线程/调度程序运行大约需要1.5-2秒,而原始循环几乎是不稳定的.虽然预计会有开销,但这似乎有点多.

新的Mono Continuations/Tasklet框架的主要性能开销是什么?这个开销(协程性能/原始性能)与其他框架(如Lua Coroutine和无堆栈python)相比如何?

谢谢

c# mono lua coroutine python-stackless

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

手动对象所有权与智能指针

现在,我的C++项目中的对象所有权/删除是手动跟踪的(主要通过评论).几乎每个堆分配的对象都是使用各种工厂创建的

例如

auto b = a->createInstanceOfB(); //a owns b
auto c = b->createInstanceOfC(); //b owns c
//auto k = new K(); //not in the code
...
//b is no longer used..
a->destroyInstanceOfB(b); //destroyInstanceOf calls delete on it
Run Code Online (Sandbox Code Playgroud)

智能指针在这种情况下会带来哪些好处(如果有的话)?

c++ pointers smart-pointers ownership

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

仿制药铸造

interface Base { ... }
class Sub : Base { ... }

class OtherBase<T> where T : Base { ... }
class OtherSub<T> : OtherBase<T> where T : Base { ... }

//...in some class
void Call<T>() where T : OtherBase<Base> { }

//...
Call<OtherSub<Sub>>(); //compile fails...
Run Code Online (Sandbox Code Playgroud)

似乎在使用泛型时,编译器不会在泛型类型(OtherBase/OtherSub)中强制转换内部泛型类型(Base/Sub).为什么会这样?

更新:还请解释上述和以下之间的区别(有效)

void Call<T>() where T : Base { }
//...
Call<Sub>();
Run Code Online (Sandbox Code Playgroud)

c# generics

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

C++ 11从初始化列表到数组参数的隐式转换

在C++ 11中,是否可以执行与以下类似的操作?

template<typename T, size_t N>
void foo(array<T, N> src) { ... }

...

foo({1, 2, 3})
Run Code Online (Sandbox Code Playgroud)

我目前正在运行GCC 4.8.

c++ templates initializer-list c++11

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

性能:在VS中编译,在Windows和Linux上以Mono运行

我有以下问题:

  1. 是否可以使用VS.NET编译C#项目,并在单声道上运行它?
  2. 方法1是否有任何性能优势(使用单声道编译器进行编译)?
  3. 那么在linux上运行输出.exe/.dll呢?什么是相关的性能特征?

谢谢

.net c# linux mono performance

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

在Lua中只提交一次文件

我想知道是否有办法只执行一次lua文件并且有任何后续尝试执行该lua文件将导致无操作.

我已经考虑过做类似于C++ header的#if/else/endif技巧的事情.我想知道是否有一种标准的方法来实现它.

詹姆士

lua luajit

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

shared_ptr与指针共存

我有如下功能

void a(shared_ptr<X> val) {...}
Run Code Online (Sandbox Code Playgroud)

有时,我想传入一个堆分配的对象

shared_ptr<X> v(new X());
a(v);
Run Code Online (Sandbox Code Playgroud)

其他时候,我想传入一个堆栈分配的对象

class C
{
    //doesn't work properly b/c when the shared_ptr dies it will try to delete x...
    C() { a(shared_ptr<X>(&x)); } 
    X x;
};
Run Code Online (Sandbox Code Playgroud)

使函数接受智能指针的最佳方法是什么,还要让智能指针引用堆栈分配的对象?

或者我应该去Java路由并从堆中分配所有内容?

c++ pointers smart-pointers

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