小编Kil*_*are的帖子

公共方法或订阅查看事件

我编写了一个MVP项目,其中View是一个实现我的IView接口的WinForm.我正在审核代码,在可以的地方进行改进,并且想询问您关于视图和演示者如何交互的想法.您认为以下哪项是最佳做法?

  1. 公开presenter类的方法以供视图使用.(即将它们公之于众).
  2. 让演示者听取View类引发的事件.

例如,我的MVP使用通过serialport进行通信的服务.为了连接到远程设备,我的视图调用公共Presenter方法Connect(),然后调用相应的服务方法.

提升Connect()事件并让演示者听取它是更好的做法吗?

mvp winforms

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

如何设置Angular 2反应性选择的初始值

我有一个选择列表,我想将其初始化为从服务器返回的保存值。但是,无论我尝试什么,都无法使用所选的值。

我正在使用Angular 2.2.0Reactive Forms

这是选择列表的值列表。

private categoryList: ICategory[] = [
    new Category({ id: 1, name: 'Cat 1' }),
    new Category({ id: 2, name: 'Cat 2' }),
    new Category({ id: 3, name: 'cat 3' })
];
Run Code Online (Sandbox Code Playgroud)

保存的值为:

{ id: 1, name: 'Cat 1' }
Run Code Online (Sandbox Code Playgroud)

使用FormBuilder创建表单

   this.itemForm = this.fb.group({
      name: [null, Validators.required],
      description: [null, Validators.required],
      weight: [null, Validators.required],
      dimensions: [null, Validators.required],
      category:  [null, Validators.required] 
    });
Run Code Online (Sandbox Code Playgroud)

然后用保存的数据初始化

  (<FormGroup>this.itemForm)
        .setValue({
          name: item.name,
          description: item.description,
          weight: item.weight,
          dimensions: item.dimensions,
          category: item.category 
        }, …
Run Code Online (Sandbox Code Playgroud)

angular2-forms angular2-formbuilder angular

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

功能参数最佳实践

我对函数参数的使用有疑问.

在过去,我总是编写我的代码,以便函数所需的所有信息都作为参数传递.即不使用全局参数.

然而,通过查看其他人的代码,没有参数的函数似乎是常态.我应该注意,这些是针对类的私有函数,并且作为参数传递的值实际上是该类的私有成员变量.

这导致更整洁的代码和我开始倾向于私人功能,但希望其他人的意见.

例如

Start();  
Process();  
Stop();  
Run Code Online (Sandbox Code Playgroud)

更整洁,更可读:

ParamD = Start(paramA, ParamB, ParamC);  
Process(ParamA, ParamD);  
Stop(ParamC);  
Run Code Online (Sandbox Code Playgroud)

它确实从方法的角度来打破封装,但不是从类的角度来看.

language-agnostic parameters function

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

基本表单控件在子表单中不可见

我正在使用C#.Net并且有一个由多种形式继承的基本形式.

直到昨天,当在设计器中打开子(派生)表单时,将显示基本表单控件并显示为已锁定.

现在,表格只是空白.设计器中不显示任何基本表单控件.一切都编译,构建和运行正常.

有没有人见过这个?

我已尝试在派生形式OnLoad方法中调用基本形式InitializeComponent方法,但无济于事.

c# visual-inheritance windows-forms-designer

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

为什么SQL输出参数总是为空

我有以下SP

CREATE PROCEDURE [dbo].[GetBaseSixtyTwoString]
    @a_number_to_convert int,
    @v_temp_val nvarchar(256) output
AS

DECLARE @v_modulo INTEGER;    
DECLARE @v_temp_int decimal(38) = @a_number_to_convert;      
DECLARE @v_temp_char VARCHAR(1);      

DECLARE @c_base62_digits VARCHAR(62) = '0123456789aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ';   

 IF ( @a_number_to_convert = 0 )  
 BEGIN  
   SET @v_temp_val = '5';    
 END      

 WHILE ( @v_temp_int <> 0 )  
 BEGIN  

   SET @v_modulo = @v_temp_int % 62;    
   SET @v_temp_char = substring( @c_base62_digits, @v_modulo + 1, 1 );    
   SET @v_temp_val = @v_temp_char + @v_temp_val;     
   SET @v_temp_int = floor(@v_temp_int / 62);    

 END  
Run Code Online (Sandbox Code Playgroud)

我这样称呼它:

declare @shorturl nvarchar(256)
exec dbo.GetBaseSixtyTwoString …
Run Code Online (Sandbox Code Playgroud)

sql sql-server

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

使用Jasmine和Typescript测试Firebase的云功能

我目前正在调查Google Cloud Functions,并使用typescript编写了一些基本的测试函数.

这些函数按预期工作,我现在正尝试使用Jasmine创建单元测试.(我不是按照文档使用Chai/sinon,因为我的项目的其余部分使用了jasmine).

我有两个问题1)由于此错误,测试未运行

抛出新错误('Firebase配置变量不可用.'+ ^错误:Firebase配置变量不可用.请使用最新版本的Firebase CLI来部署此功能

2)鉴于测试确实运行,我不确定如何测试响应是否符合预期.

索引文件

import * as functions from 'firebase-functions'

import { helloWorldHandler } from  './functions/hello-world';

export let helloWorld = functions.https.onRequest((req, res) => {
    helloWorldHandler(req, res);
});
Run Code Online (Sandbox Code Playgroud)

正在测试的文件

export let helloWorldHandler = (request, response) => {
    response.send("Hello from Firebase Cloud!");
}
Run Code Online (Sandbox Code Playgroud)

规格

import {} from 'jasmine';
import * as functions from 'firebase-functions'
import { helloWorldHandler } from './hello-world';
import * as endpoints from '../index';

describe('Cloud Functions : Hello World', () => {

    let configStub …
Run Code Online (Sandbox Code Playgroud)

jasmine firebase typescript google-cloud-functions

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