小编yas*_*891的帖子

为什么我需要使用C#嵌套类

我试图了解C#中的嵌套类.我知道嵌套类是在另一个类中定义的类,我没有得到的是为什么我需要这样做.

c# nested-class inner-classes

214
推荐指数
7
解决办法
16万
查看次数

如何测试Rails中的关注点

鉴于我Personable在我的Rails 4应用程序中有一个问题有一个full_name方法,我将如何使用RSpec进行测试?

关注/ personable.rb

module Personable
  extend ActiveSupport::Concern

  def full_name
    "#{first_name} #{last_name}"
  end
end
Run Code Online (Sandbox Code Playgroud)

testing rspec ruby-on-rails

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

c#,Excel + csv:如何获得正确的编码?

我现在已经尝试了很长一段时间,但无法弄明白.我正在尝试通过*.csv文件将数据导出到Excel.它到目前为止工作得很好,但在Excel中打开文件时遇到了一些编码问题.

(左边的原始字符串,右边的EXCEL结果):

Messwert(µm / m) ==> Messwert(µm / m)

Dümme Mässöng ==> Dümme Mässöng
Run Code Online (Sandbox Code Playgroud)

Notepad ++告诉我该文件被编码为"ANSI as UTF8"(WTF?)

所以这里有不同的方法我试图得到一个有效的结果:明显的实现:

tWriter.Write(";Messwert(µm /m)");
Run Code Online (Sandbox Code Playgroud)

更复杂的一个(试过可能十几个或更多的编码组合:)

tWriter.Write(Encoding.Default.GetString(Encoding.Unicode.GetBytes(";Messwert(µm /m)")));
tWriter.Write(Encoding.ASCII.GetString(Encoding.Unicode.GetBytes(";Messwert(µm /m)")));
Run Code Online (Sandbox Code Playgroud)

等等

创建数据的方法的完整源代码:

    MemoryStream tStream = new MemoryStream();
    StreamWriter tWriter = new StreamWriter(tStream);
    tWriter.Write("\uFEFF");

    tWriter.WriteLine(string.Format("{0}", aMeasurement.Name));
    tWriter.WriteLine(aMeasurement.Comment);
    tWriter.WriteLine();
    tWriter.WriteLine("Zeit in Minuten;Messwert(µm / m)");

    TimeSpan tSpan;
    foreach (IMeasuringPoint tPoint in aMeasurement)
    {
        tSpan = new TimeSpan(tPoint.Time - aMeasurement[0].Time);
        tWriter.WriteLine(string.Format("{0};{1};", (int)tSpan.TotalMinutes, getMPString(tPoint)));
    }

    tWriter.Flush();
    return tStream;
Run Code Online (Sandbox Code Playgroud)

生成的CSV文件:

Dümme Mössäng
Testmessung die erste

Zeit in Minuten;Messwert(µm / m) …
Run Code Online (Sandbox Code Playgroud)

c# csv excel encoding export

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

将ISO 8601格式的时间段转换为滴答/毫秒

在.NET 3.5中是否有内置方法将ISO 8601周期转换为.NET TimeSpan/ticks /毫秒?

.net c# time datetime date

10
推荐指数
2
解决办法
2492
查看次数

SHGetKnownFolderPath/Environment.GetFolderPath()为公共文档返回错误的值

尝试解析CommonDocuments目录时出现了一些奇怪的错误.使用Windows资源管理器(属性 - >上下文菜单中的路径)将CommonDocuments目录重定向/移动到新位置后,它会一直解析到错误的目录.

最小的工作代码是:

namespace CommonDocumentsTest
{
    class Program
    {
        private static readonly Guid CommonDocumentsGuid = new Guid("ED4824AF-DCE4-45A8-81E2-FC7965083634");

        [Flags]
        public enum KnownFolderFlag : uint
        {
            None = 0x0,
            CREATE = 0x8000,
            DONT_VERFIY = 0x4000,
            DONT_UNEXPAND= 0x2000,
            NO_ALIAS = 0x1000,
            INIT = 0x800,
            DEFAULT_PATH = 0x400,
            NOT_PARENT_RELATIVE = 0x200,
            SIMPLE_IDLIST = 0x100,
            ALIAS_ONLY = 0x80000000
        }

        [DllImport("shell32.dll")]
        static extern int SHGetKnownFolderPath([MarshalAs(UnmanagedType.LPStruct)] Guid rfid, uint dwFlags, IntPtr hToken, out IntPtr pszPath);

        static void Main(string[] args)
        {
            KnownFolderFlag[] flags …
Run Code Online (Sandbox Code Playgroud)

c# winapi .net-4.0 windows-7 known-folders

9
推荐指数
1
解决办法
5276
查看次数

Google Analytics:实时显示事件,但不在报告中

我通过 Google 的测量 API发送事件- 而不是“普通”的 JS API。

我大约在80 小时前(周四晚些时候到周一早些时候)开始发送事件。

在正常的一天,我们发送大约 200-400 个事件。视图只应用了一个过滤器(过滤掉单个办公室 IP 地址)。

预期行为:事件在实时视图以及“行为”下的报告中都显示良好。

观察到的行为:事件仅显示在实时视图中,而不显示在“行为”下的报告中。

google-analytics google-analytics-api

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

.net remoting:更新已经序列化的对象

我有一个名为"DefaultMeasurement"的MarshalByRefObject,它包含一个IPoint对象列表.

public class DefaultMeasurement : MarshalByRefObject, IMeasurement
{
  private List<IPoint> iPoints;
  public this[int aIndex]
  {
    get { return iPoints[aIndex];}
  }
}

[Serializable]
public class DefaultPoint : IPoint, ISerializable
{
  public int Value {get;set;}
}
Run Code Online (Sandbox Code Playgroud)

首次从服务器检索DefaultMeasurement对象时,所有点都被序列化,并且在所有后续调用DefaultMeasurement.Points期间,我得到了启动客户端时正确的列表.但与此同时,该列表中至少有一个对象的状态可能已更改,并且我没有获得当前状态,尽管在服务器中状态得到更新.如何强制更新该列表?

进一步澄清:
- 它会在我做的时候起作用DefaultPoint : MarshalByRefObject,但这不是一个选项,因为它会对性能产生负面影响
- "更新"我指的是对服务器上现有对象的更改,不会在列表本身上添加/删除
- 我可能会到80k DefaultPoint物体

.net c# client .net-remoting

6
推荐指数
1
解决办法
837
查看次数

如何:将Keys.PageUp分配给ToolStripMenuItem.ShortcutKeys

ToolStripMenuItem mi = new ToolStripMenuItem();
var value = new KeysConverter().ConvertFromString("PageUp");
// value = Enum.Parse(typeof (Keys), "PageUp");
var cast = (Keys) value;
mi.ShortcutKeys = cast;
Run Code Online (Sandbox Code Playgroud)

我正在尝试将字符串"PageUp"转换为适当的System.Windows.Forms.Keys值.但是,两种解析方法(Enum.Parse()vs. KeysConverter.ConvertFromString())都设置valueLButton | Space,这导致InvalidEnumArgumentException了最后一行.

背景:

  • System.Windows.Forms.Keys 是一个标志枚举
  • PageUp的值为33,LButton为1,Space为32 ==>含义Enum.Parse正常.

如何正确解析"PageUp" Keys.PageUp


更新:
傻我.解析工作正常.

ToolStripMenuItem mi = new ToolStripMenuItem();
mi.ShortcutKeys = Keys.PageUp;
Run Code Online (Sandbox Code Playgroud)

但是这个抛出了上面提到的异常.
所以在意识到我咆哮了错误的树之后:

一个人怎么可以分配Keys.PageUpToolStripMenuItem.ShortcutKeys

.net c# winforms

6
推荐指数
1
解决办法
1689
查看次数

如何有效地实现不可变类型

在编写C#时,我经常发现自己实现了不可变类型.我总是写了很多代码,我想知道是否有更快的方法来实现它.

我通常写的:

public struct MyType
{
  private Int32 _value;
  public Int32 Value { get { return _value;} }

  public MyType(Int32 val)
  {
     _value = val;
  }
}

MyType alpha = new MyType(42);
Run Code Online (Sandbox Code Playgroud)

当字段数量增加并且输入很多时,这变得相当复杂.有没有更有效的方法来做到这一点?

c# c#-4.0

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

没有方法'setMaxListeners'错误

根据这个问题,我需要打电话request.setMaxListeners(0)来解决所描述的问题.

当我尝试做的时候:

var request = require('request');
request.setMaxListeners(0);
Run Code Online (Sandbox Code Playgroud)

我收到以下错误消息:

request.setMaxListeners(0);
        ^ TypeError: Object function request(uri, options, callback) {   if (typeof uri === 'undefined') throw new Error('undefined is not a valid uri or options object.')   if ((typeof options === 'function') && !callback) callback = options   if (options && typeof options === 'object') {
    options.uri = uri   } else if (typeof uri === 'string') {
    options = {uri:uri}   } else {
    options = uri   }

  options = copy(options)

  if …
Run Code Online (Sandbox Code Playgroud)

javascript request node.js

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

编译C#,使其以C++的速度运行

好吧,所以我想问一下,实际上是否可以从c#到c ++创建一个解析器.
因此,用C#编写的代码能够像用C++编写的代码一样快地运行.
它真的可以吗?我不是在问它会有多难.

c# c++

-1
推荐指数
1
解决办法
227
查看次数