人们似乎教条地坚持在田野上使用公共财产,但为什么在简单财产的情况下它如此重要?
怎么
public int Foo { get; set; }
Run Code Online (Sandbox Code Playgroud)
非常不同于
public int Foo;
Run Code Online (Sandbox Code Playgroud)
?
在我的脑海中,我可以想到两者之间的实际差异:
除了这些非常罕见的情况之外,稍后将Foo更改为计算属性会导致更改0行代码.
我正在使用System.Diagnostics.Process
有时崩溃的对象创建一个进程, Windows会发出"发送错误报告"对话框.我无法控制子进程,但是我已经在崩溃时处理了这个案例,如何阻止对话框弹出?
Process p = new Process();
p.StartInfo.FileName = Path.Combine(avokeHome, @"bin\folderstx.exe");
p.StartInfo.Arguments = "-f" + propertiesFile;
p.StartInfo.CreateNoWindow = true;
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardError = true;
p.StartInfo.RedirectStandardOutput = true;
p.OutputDataReceived += (sender, e) => { if(!string.IsNullOrEmpty(e.Data)) Console.WriteLine(e.Data); };
p.ErrorDataReceived += (sender, e) => { if(!string.IsNullOrEmpty(e.Data)) Console.WriteLine(e.Data); };
p.EnableRaisingEvents = true;
p.Exited += (sender, e) => { Console.WriteLine("Exited"); };
p.Start();
p.BeginErrorReadLine();
p.BeginOutputReadLine();
Run Code Online (Sandbox Code Playgroud) 假设你在C#中有一个MethodInfo或任何其他的MemberInfo子类.是否可以检索声明它的文件的名称以及声明开始处的行号?此信息必须存在于调试模式元数据中的某处,因为创建StackTrace实例将为您提供该信息.我应该在System.Diagnostics而不是System.Reflection中查找?
我看到一个System.Diagnositics.Process.HasExited
方法抛出一个InvalidOperationException,但是消息文本属性对它抛出的原因并不十分有用.在什么条件下抛出此异常?
我通常会查看SoX或Window的内置音频库,但看起来它们都没有G.726编解码器.
所以我有一个字节序列,我知道编码为G.726,虽然比特率和它是mu-law还是A-law目前还不知道(实验将决定那些参数),我需要将它们解码为普通的PCM信号.
所以我从ITU-T(ITU-T G.191建议书)下载了参考实现,但我对如何使用该G726_decode
功能感到困惑.根据文档inp_buf
并out_buf
需要具有相同的长度smpno
,两个缓冲区都是16位缓冲区.在我看来,这似乎是一个缺失的步骤; 否则,使用G.726无法完成压缩.根据G.726上的维基百科页面,样本大小取决于比特率(从2到5位).我本来应该自己做减压样品吗?因此,如果我假设最大压缩(2位采样),则每个字节将产生4个采样.
例:
char b = /* read the code from input */
short inp[4], output[4];
inp[0] = b & 0x0003;
inp[1] = b & 0x000C >> 2;
inp[2] = (b & 0x0030) >> 4;
inp[3] = (b & 0x00C0) >> 6;
G726_state state;
memset(&state, 0, sizeof(G726_state));
G726_decode(inp, output, 4, "u", 2, 1, &state);
/* ouput now contains 4 PCM samples */
Run Code Online (Sandbox Code Playgroud)
还是我完全错过了什么?
这对于我见过的一些人来说是一个问题,但大多数人都是关于文本问题的.这是纯粹的二元问题.这是一些示例代码.
MD5 md5Bytes = MD5.Create() ;
MD5 md5Stream = MD5.Create() ;
var random = new Random();
var bytes = new byte[ 4096*2 ] ;
random.NextBytes(bytes);
var stream = new MemoryStream(bytes) ;
stream.Position = 0 ;
var bytesHash = md5Bytes.ComputeHash(bytes);
var streamHash = md5Stream.ComputeHash(stream);
for (int i = 0; i < bytesHash.Length; ++i)
if ( bytes[i] != streamHash[i] )
{
Console.WriteLine("Different content " + i);
break;
}
Run Code Online (Sandbox Code Playgroud)
当我跑这个时,令我惊讶的是我得到了不同的结果.有人可以解释这里发生的事情,不应该是字节数组的MD5给出与相同内容流相同的结果吗?