问题列表 - 第30052页

为什么C++ STL iostream不是"异常友好"?

我已经习惯了Delphi VCL框架,其中TStreams会在错误上抛出异常(例如找不到文件,磁盘已满).我正在移植一些代码来代替使用C++ STL,并且已被iostream捕获而不是默认情况下抛出异常,而是设置badbit/failbit标志.

两个问题......

a:为什么这样 - 对于从第一天开始就使用异常构建的语言,这似乎是一个奇怪的设计决策?

b:如何最好地避免这种情况?我可以按照我的预期生产可以抛出的垫片类,但这就像重新发明轮子一样.也许有一个BOOST库以更加理智的方式做到这一点?

c++ iostream stl exception

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

是否有一个监听器来监听android中的音量变化?

是否可以注册一个监听器来监听Android中音乐流音量级别的变化?

我在SeekBar中显示实际音量,如果用户使用硬件音量键更改音量,我想更改搜索栏.此时显示正确的音量,直到用户使用硬件键更改音量.

audio android

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

DOCTYPE阻止我的div显示

我有以下代码,正如预期的那样,在Firefox和IE中都显示了一个灰色矩形.只要我在前面添加DOCTYPE(HTML 4.01 Transitional),它就会只显示一个空白页面.在线验证员说文件没问题.怎么了?我应该关心DOCTYPE吗?

<html>
<head>
  <title>Title</title>
  <meta http-equiv="content-type" content="text/html;charset=utf-8">
  <style type="text/css">
   #gallery
    {
      width:750;
      height:548;
      background-color: #f0f0f0;
    }
  </style>
</head>
<body>
<div id="gallery">
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

html css doctype

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

C#:使用"self"类型作为通用参数?

这看起来有点奇怪,但我真的需要为C#中非常复杂的双工 - 通信 - 处理创建一个解决方法,特别是强迫其他开发人员遵守DRY原则.

所以我正在做的是有一个类型为基础的multiton,如下所示:

internal sealed class SessionManager<T> where T : DuplexServiceBase
Run Code Online (Sandbox Code Playgroud)

这根本没问题 - 到目前为止.

但是,只要我想拥有服务(我将在每个会话中使用一个实例)使用SessionManager注册自己,麻烦就开始了:

internal abstract class DuplexServiceBase : MessageDispatcherBase<Action>
Run Code Online (Sandbox Code Playgroud)

(MessageDispatcherBase是我的一个类,它创建一个线程并异步发送消息).

我想有一个看起来像这样的方法:

    protected void ProcessInboundMessage()
    {
        // Connect
        SessionManager<self>.Current.Connect(this);
    }
Run Code Online (Sandbox Code Playgroud)

......但问题是 - 我怎么才能进入"自我"?

我真的需要为每个服务类单独的会话管理器,因为它们都有自己的通知(基本上它是非常讨厌的"NotifyAllClients" - 这个方法让我们想要在最后几个小时内完成自己的头发)并且需要单独处理.

你有什么想法?

我不想使用"AsyncPattern = true",顺便说一句......这将要求我放弃类型安全,强制执行合同(这会导致滥用我在此处设置的通信系统)和需要放弃DRY原则,整个地方会有很多重复的代码,这是我非常鄙视的事情.

编辑:

我找到了最好的解决方案,感谢这里的答案 - 这是一种扩展方法,呵呵......

    public static SessionManager<T> GetSessionManager<T>(this T sessionObject) 
        where T : DuplexServiceBase
    {
        return SessionManager<T>.Current;
    }
Run Code Online (Sandbox Code Playgroud)

我可以这样使用:

GetSessionManager().Connect(this);
Run Code Online (Sandbox Code Playgroud)

任务完成.:-D

这个方法(属于DuplexServiceBase)给了我想要使用的会话管理器.完善!:-)

c# wcf singleton type-systems design-patterns

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

在不创建实现的情况下实现接口(动态代理?)

我一直在努力创建自己的IoC容器用于学习目的.在询问了几个关于它们的问题之后,我被证明创建一个"解决"对象的工厂是最好的解决方案(参见第三个解决方案).用户KrzysztofKoźmic表明Castle Windsor实际上可以为您实现这一点.

我整个上午都在阅读CW的来源.我知道当调用Resolve时,它会"返回界面".这个接口如何"拦截"调用(因为后面没有实现)并调用它自己的方法?

我知道这里有一些反思诡计,这真是太神奇了.我根本不是用户如何"拦截".我试着用git冒险从兔子洞里冒险,但我迷路了.如果有人能指出我正确的方向,那将非常感激.

另外 - 创建一个类型化的工厂是否会依赖于调用代码中的容器?在ASP.NET MVC术语中,这就是我所看到的.

编辑:发现Reflection.Emit ...这可能是什么用的?

EDIT2:我越来越关注这一点,自动创建工厂听起来越复杂.我可能最终只是坚持使用重复的代码.

c# reflection asp.net-mvc castle-windsor inversion-of-control

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

正则表达式:检查字符串是否包含至少一个数字

我有一个像这样的文本字符串:

test1test
Run Code Online (Sandbox Code Playgroud)

我想检查它是否包含使用正则表达式的至少一个数字.

这个正则表达式是什么样的?

regex

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

克隆没有.git目录的Git仓库

是否可以在没有git的情况下克隆存储库,在存储库的本地副本中创建.git文件夹?有点像只读功能?

git git-clone

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

SQL - 如何从表中获取唯一键的列名

我知道如何使用以下SQL语句从表中获取列:

SELECT COLUMN_NAME 
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE (TABLE_NAME = 'MYTABLENAME')
Run Code Online (Sandbox Code Playgroud)

但是,我如何才能返回UNIQUE Key的列名?

sql

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

MD5哈希可以从零开始吗?

MD5哈希可以从零开始吗?SHA-1怎么样?

md5 zero

10
推荐指数
4
解决办法
7861
查看次数

选择*vs选择列

如果我只需要2/3列并且我查询SELECT *而不是在select查询中提供这些列,那么是否有关于更多/更少I/O或内存的性能下降?

如果我在不需要的情况下选择*,则可能存在网络开销.

但是在select操作中,数据库引擎是否始终从磁盘中提取原子元组,还是仅提取select操作中请求的那些列?

如果它总是拉取元组,那么I/O开销是相同的.

同时,如果它提取元组,则可能存在从元组中剥离所请求列的内存消耗.

因此,如果是这种情况,选择someColumn将比select*具有更多的内存开销

sql performance

120
推荐指数
8
解决办法
8万
查看次数