小编Mar*_*age的帖子

将值分配给由字符串名称动态确定的knockout observable

我有两个问题请:

我正在使用淘汰赛(我是KO noob sry)并且我想在点击事件中为特定的淘汰赛观察分配一个值,但这应该仅在点击事件本身确定(并且我将传递给的值) data-bind = click)...可以这样做吗...我可以在其名称(字符串值)上获取knockout observable变量,而不必知道哪个observable我将分配一个值预先?

并且,其次不那么重要,如果存在这样的函数ko.ObservableByName(stringName),可以以某种方式使用它并在页面加载时分配多个选择项的预选择.请问如何?

我试过这样做...我使用了data-bind ="click:loadData.bind($ data,' param1 ',' param2 ')"然后我就能得到那些param1param2字符串通过在我的knockout viewmodel中构造一个事件处理程序的值,该事件处理程序沿着以下行行:

self.loadData = function (src, dest) {
    //dest is 'param1', src is 'param2', both are stings
    if (src == 'param1')
       self.p1observable($('#' + dest).val());
    else
       self.p2observable($('#' + dest).val());
}
Run Code Online (Sandbox Code Playgroud)

我最大的问题是我必须用已经指定的p1/p2 observable构造函数并在其中进行硬编码,但实际上我想让param1和param2用作某些名称或引用的名称.我的observable,然后我可以随意传递(除了要分配的值,或者更好的另一个observable我想将值复制到第一个),因此我可以在点击中分配传入的值函数直接调用我选择的一个observable(并没有大量这样的小函数)......

也许我会以错误的方式去做?也许我根本不应该传递字符串值...也许我应该尝试传入一个可观察对象,但是如何在数据绑定中做到这一点,你只是编写myViewModel.myObservable或类似的东西吗?

variable-assignment observable knockout.js

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

.net Observable'OrserveOn'一个后台线程

我试图使用.net Observable类实现一个简单的Observer模式.我的代码看起来像这样:

Observable.FromEventPattern<PropertyChangedEventArgs>(
    Instance.User,
    "PropertyChanged")
          .Where(e => e.EventArgs.PropertyName == "FirstName")
          .ObserveOn(Scheduler.ThreadPool)
          .Subscribe(search => OnFirstNameChanged(search.EventArgs));

Observable.FromEventPattern<PropertyChangedEventArgs>(
    Instance.User,
    "PropertyChanged")
          .Where(e => e.EventArgs.PropertyName == "LastName")
          .ObserveOn(Scheduler.ThreadPool)
          .Subscribe(search => OnLastNameChanged(search.EventArgs));
Run Code Online (Sandbox Code Playgroud)

我希望观察者在后台线程上运行,但是我希望它们都在相同的后台线程上运行(对于我们真正的实现,将每个侦听器放在不同的线程上会非常复杂).

即我希望所有的OnXXXChanged逻辑都在UI线程以外的线程上执行,但是Observing我想确保它们在同一个线程上以正确的顺序运行,而不是在整个线程池上运行.

如何修改上述内容?

另外,在某种程度上相关的说明,是否有任何好的示例代码示例使用Observable该类来实现此模式?

.net c# system.reactive observable

8
推荐指数
2
解决办法
4217
查看次数

d3追加并输入问题

所以我在遵循一个非常简单的d3教程时遇到了问题.本质上我试图通过将数据绑定到当前的svg圈元素然后调用enter.append来添加SVG圈元素如下所示:

var svg =d3.select("body").selectAll("svg");
var circle = svg.selectAll("circle");
var w=window.innerWidth;
console.log(circle);
circle.data([500,57,112,200,600,1000]);


circle.enter().append("circle")
    .attr("cy",function(d) {
        return (d)
        })
    .attr("cx", function(i){
        return (i*100)
    })
    .attr("r", function(d) {
        return Math.sqrt(d);
        })
Run Code Online (Sandbox Code Playgroud)

这似乎会增加3个新的圆形元素(因为我已经创建了3个).但是,我没有添加这3个新的圆形元素,而是遇到了这个错误:

未捕获的TypeError:对象[对象SVGCircleElement],[objectSVGCircleElement],[对象SVGCircleElement]没有方法'enter'

我用段落做了基本相同的事情,它似乎工作正常:

var p =d3.select("body").selectAll("p")
.data([4, 8, 15, 16, 23, 42])
.text(function(d) { return "I'm number " + d + "!"; });

 //Enter    
 p.enter().append("p")
.text(function(d) { return "I'm number " + d + "!"; })
.style("color", function(d, i) {
 return i % 2 ? "#000" : "#eee";
});
Run Code Online (Sandbox Code Playgroud)

但是,只要我尝试将SVG元素添加到其中,我就会继续得到相同的错误.

看起来应该只是语法错误或其他什么,但我已经完成了5万亿次代码,并且找不到任何东西. …

svg d3.js

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

从右到左括号显示错误

当Label文本值以end括号结束时."从右到左"的结果是错误的,例如.

Text: ABC (123)
Result: (ABC (123
Expected Result: ABC (123)

有没有解决方案来解决它?

.net c# winforms right-to-left

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

使用Rx同步异步事件

我想充分利用Reactive Extensions for .NET(Rx),并希望得到一些关于做一些基本任务的意见.为了说明我正在尝试做什么,我有一个人为的例子,我有一个带有异步事件的外部组件:

class Component {

  public void BeginStart() { ... }

  public event EventHandler Started;

}
Run Code Online (Sandbox Code Playgroud)

该组件通过调用启动BeginStart().此方法立即返回,稍后,当组件完成启动时,Started事件将触发.

我想通过包装组件来创建一个同步启动方法,并等待Started事件被触发.这是我到目前为止所提出的:

class ComponentWrapper {

  readonly Component component = new Component();

  void StartComponent() {
    var componentStarted =
      Observable.FromEvent<EventArgs>(this.component, "Started");
    using (var startedEvent = new ManualResetEvent(false))
      using (componentStarted.Take(1).Subscribe(e => { startedEvent.Set(); })) {
        this.componenet.BeginStart();
        startedEvent.WaitOne();
      }
  }

}
Run Code Online (Sandbox Code Playgroud)

我想摆脱它ManualResetEvent,我希望Rx有一个解决方案.但是怎么样?

.net c# system.reactive

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

在QuickFIX接受器中自定义FIX登录过程

我正在使用QuickFIX和C#来创建一个FIX接受器(服务器).我希望客户端(FIX启动器)使用用户名和密码登录.但是,我不确定如何在QuickFIX中做到这一点.

通过调试QuickFIX源代码,我发现了以下事件序列:

  • QuickFIX将调用Session::verify以验证登录.
  • Session::verify 将执行各种检查,如comp ID和序列号,并在某些时候确定收到的登录是有效的.
  • Session::verify然后将调用Application::fromAdmin回调,我认为这是自定义登录等内容的地方.
  • 但是,此时QuickFIX已经确定登录正常,并且当回调返回时,接收器将返回相应的登录消息.

如何在接受器中自定义FIX登录过程?修改QuickFIX代码是我唯一的选择吗?

c# quickfix fix-protocol

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

-0和0之间有什么区别?

在C++中,例如fmod(-2,2)返回-0.表达式-0 == 0是真的,但位不同.有什么样的东西-0应该0是以不同的方式表达的目的是什么?是-0使用完全相同的方式0在任何计算?

c++ floating-point

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

C++中虚拟表的结构是什么?


例如,我有两个"接口"和类类型:

class IPlugin
{
  public:
    virtual void Load(void) = 0;
    virtual void Free(void) = 0;
};

class IFoo
{
  public:
    virtual void Foo(void) = 0;
};


class Tester: public IPlugin, public IFoo
{
   public:
           Tester() {};
          ~Tester() {};

           virtual void Load()
           {
              // Some code here
           }

           virtual void Free()
           {
              // Some code here
           }

           virtual void Foo(void)
           {
              // Some code here
           }
 };
Run Code Online (Sandbox Code Playgroud)

vtab实际上具有哪种结构类型Tester?而如何将 dynamic_cast运营商的行为(我的意思是如何dynamic_cast操作员将扫描vtab为有效的引用类型皈依)的表达式:

Tester* t = new Tester();
IPlugin* plg …
Run Code Online (Sandbox Code Playgroud)

c++ vtable

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

LINQ是否缓存计算值?

假设我有以下代码:

var X = XElement.Parse (@"
    <ROOT>
        <MUL v='2' />
        <MUL v='3' />
    </ROOT>
");
Enumerable.Range (1, 100)
    .Select (s => X.Elements ()
        .Select (t => Int32.Parse (t.Attribute ("v").Value))
        .Aggregate (s, (t, u) => t * u)
    )
    .ToList ()
    .ForEach (s => Console.WriteLine (s));
Run Code Online (Sandbox Code Playgroud)

什么是.NET运行时实际在这里做什么?难道解析和转换属性整数各100次,还是足够聪明弄清楚,它应该缓存解析值,而不是重复计算的范围中的每个元素?

而且,我怎么会自己搞清楚这样的事情呢?

在此先感谢您的帮助.

.net c# linq clr4.0

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

C#等效于C++ __FILE __,_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

我有一个C++代码,我正在尝试迁移到C#.在那里,在C++上,我使用以下宏定义进行调试.

#define CODE_LOCATION(FILE_NAME, LINE_NUM, FUNC_NAME) LINE_NUM, FILE_NAME, FUNC_NAME
#define __CODE_LOCATION__ CODE_LOCATION(__FILE__, __LINE__, __FUNCTION__)
Run Code Online (Sandbox Code Playgroud)

C#中是否有类似的结构?我知道C#中没有宏,但有没有其他方法可以在执行期间获取当前文件,行和函数值?

c#

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