a=b=c=d=100;
这样写的意思就是把变量a
/b
/c
/d
都赋值为100
那其实a=6
就返回a
的值(赋值之后的值返回),这是一个语法糖
那么这个坑是如何造成我排查一下午的堆栈溢出的呢?
贴出我的代码:使用wpf+prism写的遇到的坑:
public class MainWindowViewModel:BindableBase
public MainWindowViewModel()
this.PushCmd = new DelegateCommand(Push, () => this.IsError=false);
public DelegateCommand PushCmd { get; set; }
private bool isError;
public bool IsError
get { return isError; }
isError = value;
this.RaisePropertyChanged(nameof(IsError));
this.PushCmd?.RaiseCanExecuteChanged();
本来是:this.PushCmd = new DelegateCommand(Push, () => this.IsError==false);
错写为:this.PushCmd = new DelegateCommand(Push, () => this.IsError=false);
还能通过编译。这样就导致:
- wpf界面获取PushCmd是否能执行
- 执行
() => this.IsError=false
委托 - 委托中对
IsError
赋值false - IsError的set中刷新
PushCmd
是否能执行 - 执行
() => this.IsError=false
委托 - …
发现程序一直执行() => this.IsError=false
从而进入递归死循环导致堆栈溢出
namespace InstrumentUtilityDotNet
public class NotifyObjectChanged : INotifyPropertyChanged
public event PropertyChangedEventHandler PropertyChanged;
public static string
str_systemconfig_FileName = “config.ini”;
string str = GlobalVar.str_systemconfig_AllPath +
GlobalVar.str_systemconfig_FileName;
INIFile myIniFile = new INIFile(str);
int temp_key = 0;
int temp_s
包括ASP.NET和ASP.NET AJAX + JSON两个DEMO,最低耗时35ms左右(AJAX+JSON)。百万级数据库查询分页,使用Oracle 存储过程。Asp.net 2.0 + ,Oracle 10g + 开发环境:ASP.Net 2.0 - 4.5, Oracle 11g r2项目开源发布,供下载学习。需要自己建一个TEST数据表,包括3个字段ID,COL1,COL2。Descr
在Form Shown中showInTaskBar =false 或者 this.Hide();
转载于:https://www.cnblogs.com/runliuv/p/3657542.html...
这是一个普遍的问题:如果我们再程序中使用了多线程技术,而工作线程(后台线程)如果需要更新界面上的元素(例如进度条等),就会有一个线程安全性问题,因为进度条是由主线程创建出来的。 关于这一点,大致上看,WPF的机制与Windows Forms是没有差别的。我们在Windows Forms中需要按照下面的方式更新窗体元素。 using System;
using System.Windows.Forms;
using System.Threading;
namespace WindowsFormsA
场景:在一些后台管理系统中编辑或新增业务数据的时候都需要记录用户的操作日志,但是如果每次都单独写这块操作日志,又显得非常繁琐,所以这边使用泛型、反射以及一定的实体约束来进行了通用操作日志封装。废话不多讲,直接上代码——
封装端代码:
using Model.Entity;
using Model.Request;
using System;
using System.Linq;
using ...
BaseResponse response = new BaseResponse(); PropertyInfo[] properties = request.GetType().GetProperties(); foreach (var item in properties) { if (item.G...