小编gre*_*man的帖子

将零参数作为参数传递 - 定义行为的位置?

C#规范 允许你调用一个函数

void foo(params int[] x)
Run Code Online (Sandbox Code Playgroud)

零参数.但是,我没有在C#Lang中找到.规格.关于进一步行为的一个词 - 将foo获取空数组或空引用?我也检查了MSDN - 什么都没有.

行为定义在哪里?

注意:我不是在询问VS的行为,我在询问语言的设计.

c# arguments specifications params

17
推荐指数
2
解决办法
6879
查看次数

IEEE 754实数可以覆盖其范围内的所有整数吗?

原始问题被编辑(缩短)以关注精度问题,而不是范围问题.

单精度或双精度,实数的每个表示都限于( - 范围,+范围).在这个范围内有一些整数(1,2,3,4 ......等等;负数也是如此).

是否保证IEEE 754实数(浮点数,双数等)可以"覆盖" 其范围内的所有整数?"覆盖"是指实数代表的是整数,而不是(例如)"5.000001".

正如提醒:http: //www3.ntu.edu.sg/home/ehchua/programming/java/DataRepresentation.html各种数字表示格式的很好的解释.

更新:

因为问题是"可以",我也在寻找无法做到的事实 - 因为它引用一个数字就足够了.例如"不能不能完成,例如编号1748574没有完全由浮点数表示"(当然这个数字是凭空而来的).

对于好奇的读者

如果您想使用IEEE 754表示 - 在线计算器:http://www.ajdesigner.com/fl_ieee_754_word/ieee_32_bit_word.php

math

17
推荐指数
3
解决办法
5620
查看次数

如何在Scala中复制迭代器?

关于重复

这不是如何克隆迭代器的重复?

请不要盲目关闭这个问题,所谓的重复给出所有的答案不要工作.OP负责另一个问题,显然,答案符合HIS问题,但不是我的问题.

不是每个类似的问题都是重复的,在SE上有"扩展问题"这样的特征,唯一的方法是再次询问同一主题,以获得不同的,有效的答案.

问题

我有迭代器.我想得到它的复制(复制),然后我可以完全独立地继续原始和复制.

重要

通过反射或序列化进行复制是不行的(性能损失).

var list = List(1,2,3,4,5)
var it1 = list.iterator
it1.next()

var it2 = it1   // (*)
it2.next()

println(it1.next())
Run Code Online (Sandbox Code Playgroud)

这将简单地引用it1,因此当改变it1时,it2也会改变,反之亦然.

上面的例子使用List,我目前正在与HashMap斗争,但问题是一般的 - 只是迭代器.

方法#1

如果你编辑行(*)并写:

var it2 = it1.toList.iterator
Run Code Online (Sandbox Code Playgroud)

(这被建议作为链接问题中的解决方案)执行程序时抛出异常.

方法#2

"你拿这份清单......".不,我没有.我没有列表,我有迭代器.一般来说,我不知道任何关于迭代器的基础的集合,我唯一拥有的是迭代器.我必须"分叉"它.

iterator scala

16
推荐指数
3
解决办法
4108
查看次数

如何访问嵌套类的私有成员?

背景:我已经使用嵌套类N封装了(父)类E,在E中有几个N实例.在封闭的(父)类中,我正在进行一些计算,我正在为嵌套类的每个实例设置值.像这样的东西:

n1.field1 = ...;
n1.field2 = ...;
n1.field3 = ...;
n2.field1 = ...;
...
Run Code Online (Sandbox Code Playgroud)

它是一个大的eval方法(在父类中).我的意图是 - 因为所有计算都在父类中(它们不能按照嵌套实例进行,因为它会使代码更复杂) - 使setter仅对父类和getter公共可用.

现在有一个问题:

  • 当我将setter设为私有时,父类无法访问它们
  • 当我公开它们时,每个人都可以改变价值观
  • 和C#没有朋友的概念
  • 我无法在构造函数中传递值,因为使用了惰性求值机制(因此必须在引用它们时创建实例 - 我创建所有对象并按需触发计算)

我被困 - 怎么做(限制访问父类,不多也不少)?


我怀疑我会先回答问题 - "但是为什么你不按每个字段拆分评估" - 所以我通过例子回答这个问题:你如何计算集合的最小值和最大值?快点?答案是 - 一次通过.这就是为什么我有一个eval函数可以进行计算并一次设置所有字段.

c# design-patterns

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

如何使用数据绑定进行处理并保持GUI刷新?

问题的历史

这是我之前的问题的延续

如何启动线程以保持GUI刷新?

但是,由于Jon对这个问题有了新的认识,我将不得不完全重写原始问题,这会使该主题难以理解.所以,新的,非常具体的问题.

问题

两件:

  • CPU饥饿的重量级处理作为库(后端)
  • 带数据绑定的WPF GUI,用作处理的监视器(前端)

当前情况 - 库发送了很多关于数据更改的通知,尽管它在自己的线程中工作,它完全阻塞了WPF数据绑定机制,结果不仅监视数据不起作用(它没有刷新),但整个GUI被冻结在处理数据时.

目标 - 精心设计,抛光的方式使GUI保持最新 - 我并不是说它应该立即显示数据(它甚至可以跳过一些变化),但它在计算时不能冻结.

这是简化的示例,但它显示了问题.

XAML部分:

    <StackPanel Orientation="Vertical">
        <Button Click="Button_Click">Start</Button>
        <TextBlock Text="{Binding Path=Counter}"/>
    </StackPanel>
Run Code Online (Sandbox Code Playgroud)

C#部分(请注意这是一个代码,但有两个部分):

public partial class MainWindow : Window,INotifyPropertyChanged
{
    // GUI part
    public MainWindow()
    {
        InitializeComponent();
        DataContext = this;
    }

    private void Button_Click(object sender, RoutedEventArgs e)
    {
        var thread = new Thread(doProcessing);
        thread.IsBackground = true;
        thread.Start();
    }

    // this is non-GUI part -- do not mess with GUI here
    public event PropertyChangedEventHandler PropertyChanged; …
Run Code Online (Sandbox Code Playgroud)

c# data-binding wpf multithreading

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

如何自行卸载应用程序?

问题是这个 - 我的应用获得管理员权限,从UI POV获取它们非常容易.然而,一旦应用程序有这些权利,很繁琐将其卸载(用户必须首先撤销这些管理权限;如果没有,在卸载时不存在什么信息与卸载走错了 - 至少在王牌2的Android 2.3).

因此,在应用程序中安装卸载功能会很有用 - 它会首先撤消管理员权限,然后按照正常卸载进行操作.

另一种方法是通知应用程序是要卸载的程序,但据我所知这是不可能的-看到:http://code.google.com/p/android/issues/detail?can=2&q=33315&colspec=ID% 20Type%20Status%20Owner%20Summary%20Stars&ID = 33315

到目前为止,我只提出了解决方法 - 为了节省用户问题,如果应用程序已准备好卸载,请添加"清除卸载"按钮并显示状态信息.但是,用户必须再次卸载我的应用程序.无论如何麻烦.

那么 - 如何卸载自己?

只是为了保持代码在SO网站上:

Uri packageURI = Uri.parse("package:"+MyMainActivity.class.getPackage().getName());
Intent uninstallIntent = new Intent(Intent.ACTION_DELETE, packageURI);
startActivity(uninstallIntent);
Run Code Online (Sandbox Code Playgroud)

代码是从Android Tales Blog复制的.

android uninstall

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

Swift分配评估失效的原因是什么?

这个问题是关于历史(不是你目前对此事的看法).

在阅读关于为Swift删除对递增/递减运算符的支持的帖子时,我读了这样的文本"Swift已经偏离C,因为=,+ =和其他类似赋值的操作返回Void(由于多种原因)".

所以在过去的某个时候,开发人员有意识地决定将任务评估为无效,原因有些.

我正在寻找那些历史(现在)的原因.就像这个线程是关于Scala的历史原因一样.

language-design assignment-operator swift

14
推荐指数
1
解决办法
623
查看次数

如何在ASP.Net页面上使用C#常量?

下面给出的例子没什么意义,但这是因为我专注于语法.

假设我有这样的C#代码:

public static class Foo
{
  public const string Bar = "hello world.";
}
Run Code Online (Sandbox Code Playgroud)

现在,我想在ASP.Net中使用Foo.Bar常量,而不是每次都输入"hello world".所以我用这个语法:

<p><%= Foo.Bar %></p>
Run Code Online (Sandbox Code Playgroud)

有用.它也适用于这种情况:

<p>"<%= Foo.Bar %>"</p>

<p class="<%= Foo.Bar %>">the weird, nonsense example</p>  
Run Code Online (Sandbox Code Playgroud)

所以,它也适用于引号.但是我也有案例,当引用获得更高的优先级时:

<custom:Header runat='server' Text="<%= Foo.Bar %>"/>
Run Code Online (Sandbox Code Playgroud)

(标头是一个自定义控件 - 它只是默认添加一些css和位置).在这种情况下,引号具有更高的优先级,整个文本按原样被吸,实际上我得到带有文本的标题

<%= Foo.Bar%>

所以,我的问题是 - 无论什么(IOW - 具有最高优先级),C#值的常量是什么?

编辑:

<custom:Header runat='server' Text="<%# Foo.Bar %>"/>
Run Code Online (Sandbox Code Playgroud)

(注意哈希而不是等号)也不起作用.

c# asp.net syntax

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

如何让USB摄像头与OpenCV一起工作?

我从/sf/answers/2421213091/复制了代码并与默认(内置)相机一起使用,它起作用了。然后我连接了USB摄像头,用VLC对其进行了测试,并更改了打开摄像头的代码1

cam = cv2.VideoCapture(1)
Run Code Online (Sandbox Code Playgroud)

我检查摄像头是否已打开cam.isOpened()——确实是——但摄像头未启用(其硬件指示灯 LED 已关闭),而且我在屏幕上看到的确实是黑框。

是否需要添加一些额外的特殊代码才能启用 USB 摄像头?

python webcam opencv windows-7-x64

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

Scala是否具有像C#这样的对象初始化?

C#中的对象初始化:

var foo = new Foo() { bar = 5 };
Run Code Online (Sandbox Code Playgroud)

相当于

var foo = new Foo();
foo.bar = 5;
Run Code Online (Sandbox Code Playgroud)

Scala是否具有像C#这样的对象初始化?

scala initialization object

12
推荐指数
2
解决办法
1076
查看次数