小编Jon*_*art的帖子

如何在C#中存储对整数的引用?

可能重复:
如何通过"引用"将其分配给c#中的类字段?

大家好 - 请告诉我如何使这项工作?基本上,我需要一个整数引用类型(int*可以在C++中工作)

class Bar
{
   private ref int m_ref;     // This doesn't exist

   public A(ref int val)
   {
      m_ref = val;
   }

   public void AddOne()
   {
      m_ref++;
   }
}

class Program
{
   static void main()
   {
      int foo = 7;
      Bar b = new Bar(ref foo);
      b.AddOne();
      Console.WriteLine(foo);    // This should print '8'
   }
 }
Run Code Online (Sandbox Code Playgroud)

我必须使用拳击吗?

编辑: 也许我应该更具体.我正在编写一个BitAccessor类,它只允许访问各个位.这是我想要的用法:

class MyGlorifiedInt
{
   private int m_val;
   ...
   public BitAccessor Bits {
      return new BitAccessor(m_val);
   }
}
Run Code Online (Sandbox Code Playgroud)

用法:

MyGlorifiedInt val …
Run Code Online (Sandbox Code Playgroud)

c# reference value-type

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

如何处理C#中缺少多重继承

我正在为"可运行"的东西制作一个迷你框架.(它们是实验,测试,任务等)

// Something that "runs" (in some coordinated way) multiple "runnable" things.
interface IRunnableOf<T> where : IRunnable

// Provide base-class functionality for a "runner"
abstract class RunnerBase<T> : IRunnableOf<T>


class SequentialRunner<T> : RunnerBase<T>  // Same interface, different behavior.
class ConcurrentRunner<T> : RunnerBase<T>
// other types of runners.

class ConcurrentBlockRunner : SequentialRunner<Block>
class SequentialBlockRunner : ConcurrentRunner<Block>
Run Code Online (Sandbox Code Playgroud)

现在,我怎么能调和ConcurrentBlockRunnerSequentialBlockRunner?我的意思是:

  1. 由共同的祖先引用它们,用于集合.(IEnuerable<T>其中T = ??)

  2. 提供其他基类功能.(例如,添加属性).


我通过添加另一个只指定了类型参数的接口来补救#1 IA<T>:

interface IBlockRunner : IRunnableOf<Block> { }
Run Code Online (Sandbox Code Playgroud)

并修改我ConcurrentBlockRunnerSequentialBlockRunner定义为: …

c# oop multiple-inheritance

11
推荐指数
1
解决办法
932
查看次数

处理自动缩放的正确方法

我正在与WinForms应用程序上的另一个开发人员合作,我们在与自动缩放相关的外观方面遇到了很大问题.

我的系统(索尼VAIO)在此菜单上默认为125%:

显示缩放

据我所知,125%将DPI设置为120,默认字体大小(菜单等)设置为11pt.在另一个开发人员的系统上,他的默认值为100%,即96 dpi和9pt字体.我不确定,但我认为只有DPI才是让我们感到悲痛的原因.

问题表现在文本大小错误,要么掩盖其他控件,要么过于分散(取决于最后谁在设计师中打开).据我所知,所有ContainerControls都设置为AutoScaleMode.Inherit,顶级表单是AutoScaleMode.Dpi.这是大多数人使用的吗?

c# .net-4.0 winforms

11
推荐指数
1
解决办法
2066
查看次数

在C++中是否存在realloc等价物?

在C,我们有malloc(),free()realloc().在C++中,我们有new(),delete()而且他们的阵列版本.有C++ realloc功能吗?我在嵌入式领域实现了一些低级的东西,并且意识到没有realloc与C++函数配对的功能,并且想确保我没有遗漏任何东西.我猜测"将new place"放入一个新的,独立的缓冲区是最接近的匹配,但我想确定.

稍微重复一下这个问题,因为我得到的回答有点远.

我已经实现了设备级malloc/new/realloc/etc. 我的嵌入式设备上的函数,并想要仔细检查,以确保没有我不知道的C++ realloc类型函数.

c c++ memory-management

11
推荐指数
1
解决办法
1680
查看次数

有没有办法显示每个分支的构建状态/代码覆盖率

我们在GitLab上设置CI,我们可以使用以下内容显示master上的构建状态和代码覆盖率:

README.md在根目录中myproject:

[![build status](http://mygitlab/mygroup/myproject/badges/master/build.svg)](http://mygitlab/mygroup/myproject/commits/master) 
[![coverage report](http://mygitlab/mygroup/myproject/badges/master/coverage.svg)](http://mygitlab/mygroup/myproject/commits/master)
Run Code Online (Sandbox Code Playgroud)

我们想要的是在查看分支时显示当前分支的构建状态/代码覆盖README.md.现在,链接已经master硬编码,因此分支显示主人的状态.

有没有办法使用相对URL(或其他东西),以便构建状态/代码覆盖率自动适应您正在查看的分支?看一下文档,看起来这是不可能的,因为你必须指定分支.

gitlab gitlab-ci

11
推荐指数
1
解决办法
1746
查看次数

C表达式在两个不同编译器上的评估方式不同

我的代码在GCC和Atmel Studio之间运行方式不同:

uint32_t tc = 107900;
int8_t   m  = 59;

tc = tc - (m*1800);
Run Code Online (Sandbox Code Playgroud)

在GCC上,结果tc是1700,如预期的那样.

使用AtmelStudio,结果tc是132772,这是不正确的.

问题似乎m*1800是使用AtmelStudio以m的有限精度计算该术语.

我的问题是,哪个编译器正确地执行了它?

谢谢.

c gcc language-lawyer atmelstudio

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

为什么main(int argc,char*argv [])有两个参数?

我一直认为这argc是标志结束的必要条件,argv但我只是argv[argc] == NULL按照定义学到了这一点.我认为这argc完全是多余的吗?如果是这样,我一直认为C以效率的名义取消冗余.我的假设是错误的还是背后的历史原因?如果原因是历史性的,你能详细说明吗?

c argv argc

10
推荐指数
1
解决办法
650
查看次数

Winforms数据绑定到自定义类

我试图将一些Winform对象绑定到一个自定义类,更具体地说是我在代码中添加到Form中的自定义类的一个实例.C#,. NET 2010 Express.

例如,这是类的片段和UserInfoForm

public class UserInfo
{
    [XmlAttribute]
    public string name = "DefaultName";

    [XmlAttribute]
    public bool showTutorial = true;

    [XmlAttribute]
    public enum onCloseEvent = LastWindowClosedEvent.Exit;
}

public enum LastWindowClosedEvent
{
    MainMenu, 
    Exit, 
    RunInBackground
}


public partial class Form1 : Form
{
    UserInfo userToBind = new UserInfo();

    TextBox TB_userName = new TextBox();
    CheckBox CB_showTutorial = new CheckBox();
    ComboBox DDB_onCloseEvent = new ComboBox();

    public Form1()
    {
        InitializeComponent();
    }
}
Run Code Online (Sandbox Code Playgroud)

现在,我想将这些表单控件的值绑定到userToBind中它们各自的值,但是没有运气.我能找到的所有教程都要么过时了(2002年),要么将控件绑定到数据集或其他类型的数据库.

我显然忽视了一些事情,但我还没弄清楚是什么.

非常感谢您分享的任何信息.

更多信息:UserInfo设计为XML友好的,因此可以保存为用户配置文件.UserInfo将包含其他自定义XML类,所有这些类都嵌套在UserInfo下,并且许多控件只需要访问这些子类.

c# data-binding winforms

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

检测器何时关闭命名管道(FIFO)

有没有办法让作者知道读者已经关闭了命名管道(或退出)的末尾而没有写入它?

我需要知道这一点,因为我写入管道的初始数据是不同的; 读者期望在其余数据到来之前有一个初始标题.

目前,当我write()失败时,我会发现这一点EPIPE.然后我设置了一个标志,上面写着"下次发送标题".但是,在我写任何东西之前,读者可以关闭并重新打开管道.在这种情况下,我从来没有意识到他做了什么,也没有发送他期待的标题.

是否存在任何类型的异步事件类型可能对此有帮助?我没有看到任何信号被发送.

请注意,我没有包含任何语言标记,因为这个问题应该被视为与语言无关.我的代码是Python,但答案应该适用于C或任何其他具有系统调用级绑定的语言.

linux named-pipes

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

卷曲:传输关闭,剩余未完成的读取数据

我遇到了大卷毛问题.

我明白了

  • nread <= 0,服务器关闭连接,bailing
  • 传输关闭,剩余未完成的读数据

并且内容部分传递

    GET /stats/?stats_breakdown=track__track&campaign=&search_criteria=2&period=0&date_month=11&date_day=03&date_year=2015&start_date_month=11&start_date_day=03&start_date_year=2015&end_date_month=12&end_date_day=31&end_date_year=2014 HTTP/1.1
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13
Host: domain.com
Accept: */*
Cookie: sessionid=xxg4gglsm7o3b224wihqz8od19wl31h1; csrftoken=JBpLxNtgAVvDEw2wNqvBnRmzDJIjxL6C
Cache-Control: no-cache
Connection: Keep-Alive
Keep-Alive: 600
Accept-Language: en-us
X-CSRFToken: SeN9bHryRK8FWLTLJIs5c6u9AZ47a8pR
Content-Type: application/x-www-form-urlencoded
Origin: https://domain.com
Referer: https://domain.com

* additional stuff not fine transfer.c:1037: 0 0
* additional stuff not fine transfer.c:1037: 0 0
* additional stuff not fine transfer.c:1037: 0 0
* additional stuff not fine transfer.c:1037: 0 0
* additional stuff not …
Run Code Online (Sandbox Code Playgroud)

php curl

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