问题列表 - 第43917页

C#会从聚合结构/类中受益吗?

前言

tl; wr:这是一个讨论.

我知道这个"问题"更多的是讨论,因此我将其标记为社区维基.但是,根据" 如何询问"页面,它可能属于此处,因为它具体与编程相关,经过一个小时的研究后无法在网络上讨论,具体而言,与大多数C#程序员和主题相关.而且,这个问题本身就是为了获得答案,不管我的偏见,我都会保持开放的态度:C#真的会从总体结构中受益吗?尽管有这一前言,但我知道这是关闭的,但如果有权限和意图关闭的用户将我重定向到Web上的适当讨论点,我将不胜感激.


介绍


缺乏结构可变性

结构是C#中的灵活但有争议的类型.它们提供堆栈分配的值类型组织范例,但不提供其他值类型的不变性.

有人说结构应该代表值,而值不会改变(例如int i = 5;,5是不可变的),而有些人认为它们是带有子字段的OOP布局.

上结构不变性(辩论1,2,3),为此,当前的解决方案似乎具有程序员执行不变性,也没有解决.

例如,当结构作为引用(本页底部)访问并限制赋值时,C#编译器将检测可能的数据丢失.此外,由于结构构造函数,属性和函数能够执行任何操作,在返回控件之前使用限制(对于构造函数)分配所有字段,结构不能声明为常量,如果它们仅限于数据表示.


不可变的结构子集,聚合

聚合类(维基百科)是严格的数据结构,功能有限,注定会因缺乏灵活性而在对应方面提供语法糖.在C++中,它们"没有用户声明的构造函数,没有私有或受保护的非静态数据成员,没有基类,也没有虚函数".尽管核心概念保持不变,但C#中此类类别的理论细节仍可供讨论.

由于聚合结构是严格的带有标记访问器的数据持有者,因此它们的不变性(在可能的C#环境中)将被保险.除非?指定了null运算符(),否则聚合也无法为空,无其他纯值类型.出于这个原因,许多非法的结构操作将成为可能,以及一些语法糖.


用途


  1. 聚合可以声明为const,因为它们的构造函数将被强制除了分配字段之外什么都不做.
  2. 聚合可以用作方法参数的默认值.
  3. 聚合可以是隐式顺序,促进与本机的交互
  4. 聚合将是不可变的,不会导致参考访问的数据丢失.编译器检测到这些子字段修改可能会导致完整的隐式重新分配.libraries.

假设语法


从C++语法中我们可以想象出以下几点:(记住,这是一个社区维基,欢迎并鼓励改进)

aggregate Size
{
    int Width;
    int Height;
}

aggregate Vector
{
    // Default values for constructor.
    double X = 0, Y = 0, Z = 0;
}

aggregate Color
{
    byte R, G, B, …
Run Code Online (Sandbox Code Playgroud)

c# struct aggregate class

8
推荐指数
1
解决办法
2387
查看次数

在c'tor初始化列表中将临时绑定到const引用

C++ 03中的第12.2.5节说" 在构造函数的ctor-initializer(12.6.2)中绑定到引用成员的临时绑定一直存在,直到构造函数退出 "
所以我尝试了以下程序

#include<iostream>
using namespace std;

struct foo
{
  foo()
  {
    cout<<"foo c'tor"<<endl;
  }
  ~foo()
  {
    cout<<"foo d'tor"<<endl;
  }
};

struct bar
{
  const foo &ref;
  bar():ref(foo()) 
  {
    cout<<"bar c'tor"<<endl;
  }

};

int main()
{
  bar obj;
}    
Run Code Online (Sandbox Code Playgroud)

我得到的输出是:

foo c'tor
foo d'tor
bar c'tor
Run Code Online (Sandbox Code Playgroud)

现在根据标准,在条形码c'tor的c'tor init-list中由foo()生成的临时性将在bar'c'tor之后被销毁,所以foo d'tor应该在之后打印,bar c'tor
但它是相反的.
请解释原因.

c++ const-reference temporaries

12
推荐指数
1
解决办法
1631
查看次数

findbugs可以检测未使用的公共方法

是否可以使用FindBugs检测源树中未使用的方法?我在SO上看到了一些帖子,其中用户声称要这样做,有些人询问如何在FB中执行此操作以及其他人声称FB无法执行此操作.

有谁知道这是怎么做到的?我只对从其他地方没有明确调用的方法感兴趣,我不关心反射.

java findbugs public-method

8
推荐指数
1
解决办法
4999
查看次数

如何在JSON序列化时进行本地化?

我已经苦苦挣扎了几个小时,没有好结果.我正在尝试使用.NET JSON Serializers将JSON从UI来回转换为对象.

问题出现在小数位上,因为我的文化标准有","作为小数分隔符而不是".".我已经尝试实现自定义转换器(请参阅问题),但效果不佳.

我还检查了NewtonSoft JSON.net没有更好的结果.到目前为止,似乎与价值类型的匹配是文化不变的.我想覆盖这种行为,该怎么做?

顺便说一句,我真的希望避免在javascript端进行本地化.我绝对希望.NET能够处理跨文化格式化和本地化,我不认为应该有像我用这个序列化器一样的异常,我的猜测是应该有一个正确的方法来做到这一点.

提前致谢.

.net serialization json localization json.net

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

在嵌入代码或AS中禁用Adobe Flash Player硬件加速

我们在我们的网站上运行冲浪相机流,我们的网页上通过JWPlayer的最新版本(5.4)播放.

最近我们切换到另一个流媒体服务和H.264流,因为我们计划在不久的将来流式传输到iOS设备,但是这在客户端引入了一个用户无法接收视觉的错误(他们只看到通常可以看到视频的黑屏.

我们发现禁用硬件加速(Flash Player 10.1+中引入)可以解决这个问题,并且考虑到发生这种问题的环境,我会打赌这与特定的显卡,驱动程序以及如何他们处理视觉解码等

我们发现的与禁用硬件加速相关的文档仅表明这可以通过wmode参数完成,即通过设置,wmode="opaque"或者wmode="transparent"这似乎并不适用于所有情况(大多数情况下问题不再存在)但是我们仍然看到30%的用户遇到此问题.

我们可以要求用户自己禁用硬件加速,我们已经提供了如何执行此操作的详细信息,但对我来说这只是一个临时修复,我很好奇是否有更永久的东西我们可以放入直到Adobe修复此问题?

flash wmode h.264 hardware-acceleration

8
推荐指数
1
解决办法
6405
查看次数

具有多对多内联的 Django 模型表单集

我想将页面组存储在不同的标签下。所以我创建了这些模型:

class Page(models.Model):
    title = models.CharField(max_length=50)

class Tag(models.Model):
    title = models.CharField(max_length=50)
    pages = models.ManyToManyField(Page)
Run Code Online (Sandbox Code Playgroud)

然后,我想创建一个模型表单(集?),它允许我编辑标签以及附加到该标签的每个页面,作为一个大表单。我相信这就是当您使用模型内联表单集但使用外键时会发生的情况。这是一个可重用的应用程序,现在我只是在模板中渲染表单,但我更喜欢使用 django 表单,这样更容易重用。

我似乎不知道这是如何完成的,任何建议将不胜感激。

django django-forms

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

在iOS客户端上使用HTTP Live Streaming播放音频文件流,而不会将UI丢失到Quick Time

我有一个HTTP Live流媒体服务器设置,提供分段的mp3音频内容(URL指向playlist.m3u8索引文件).我需要构建一个iOS客户端应用程序来使用此音频流,而无需使用任何标准的Apple控件/ UI.它应该在后台播放流,我想使用我自己的自定义UI来提供控件.

由于内容纯粹是音频,我不想在接管UI时使用MPMoviePlayerController类.我尝试过使用AVAudioPlayer,虽然它不适用于网络流,但不出所料地无法使用错误代码"-43"播放:NSOSStatusErrorDomain.

我还尝试创建一个高度和宽度为1像素的UIWebView,并将其指向服务器上的playlist.m3u8文件.这很有效,但不幸的是我仍然失去了UI,因为UIWebView只是将播放的任务委托给QuickTime播放器,该播放器在我的应用程序中以iOS 3.xx设备全屏启动.

基本上,在我看来,Apple没有提供任何客户端API来消费HTTP Live Streaming 音频流,开发人员被迫放弃用户界面到QuickTime播放器,该播放器播放带有QT徽标的流播放屏幕.ughh ...

我很想知道是否有人有建议来帮我解决上述问题.否则,我的计划B是放弃HTTP Live Streaming并使用着名的Matt Gallagher 经典流媒体实现.但是,我有点担心苹果指南明确暗示,对于预计会通过蜂窝网络(我的应用程序)发送大量音频或视频内容的应用程序需要使用HTTP Live流媒体.这是否意味着我的计划B实施容易被Apple拒绝?有什么方法可以绕过这个指南吗?

iphone audio-streaming http-live-streaming

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

PHP的最佳UI库

我是webdevelopment的新手,我们正在使用PHP和MYSQL开发一个测验游戏.我想知道什么是最适合用于UI开发的PHP库.该库可以处理浏览器中的兼容性问题并提供丰富的UI.

提前致谢.

php

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

适用于非Javascript客户端的COMET的Google应用引擎通道API

如何在非JavaScript客户端上使用Google App引擎通道API进行COMET.

我将用python或任何其他语言编写客户端,并且可以从客户端执行HTTP或Socks.

我该如何处理,我想知道JavaScript客户端支持中发生了什么?
JS是使用长轮询还是与GAE服务器交谈的内容.

python google-app-engine channel-api

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

有没有办法在Blogger中获取当前的帖子URL?

我需要一些共享按钮的帖子URL.有没有办法检索它?谢谢

blogger

4
推荐指数
1
解决办法
6202
查看次数