这可能是个人偏好的问题,但是什么时候在代码中使用属性而不是函数
例如,我可以说得到一个错误日志
string GetErrorLog()
{
return m_ErrorLog;
}
Run Code Online (Sandbox Code Playgroud)
或者我可以
string ErrorLog
{
get { return m_ErrorLog; }
}
Run Code Online (Sandbox Code Playgroud)
你如何决定使用哪一个?我的用法似乎不一致,我正在寻找一个好的一般经验法则.谢谢.
如果我有
class foo
{
int a
int b
}
Run Code Online (Sandbox Code Playgroud)
和a List<foo> myList
是否有一些简短的表示法来制作一个List<int> from eg myList[*].a,即a从每个元素中挑选并制作一个新的列表
显然这可以通过迭代myList来完成,但似乎经常发生,我想知道是否有快捷方式表示法
对于数组等同样的问题
谢谢
有人可以通过修改下面的代码,显示一个简单但完整的例子,说明如何使用Boost异常库在线程之间传递异常?
我正在实现的是一个简单的多线程委托模式.
class DelegeeThread
{
public:
void operator()()
{
while(true)
{
// Do some work
if( error )
{
// This exception must be caught by DelegatorThread
throw std::exception("An error happened!");
}
}
}
};
class DelegatorThread
{
public:
DelegatorThread() : delegeeThread(DelegeeThread()){} // launches DelegeeThread
void operator()()
{
while( true )
{
// Do some work and wait
// ? What do I put in here to catch the exception thrown by DelegeeThread ?
}
}
private:
tbb::tbb_thread delegeeThread;
};
Run Code Online (Sandbox Code Playgroud) 我有一个 .net winforms ListBox,我已经使用 .Add() 向其中添加了项目。我更改了列表中的一个对象,使其 ToString() 方法现在返回不同的值,但该项目的显示值不会更新。我需要调用什么来告诉 ListBox 重新读取 ToString 值?
如果没问题,建议使用xml列存储用户界面可能提供的任何额外数据?
例如,假设一个Employee表
CREATE TABLE Employee
(
EmployeeId int not null,
Name nvarchar(300) not null,
Phone varchar(30) null,
Email varchar(320) null,
Address nvarchar(max) null,
Data xml null
)
Run Code Online (Sandbox Code Playgroud)
Data 可以包含许多值,如额外的电话号码,评论......
我们希望我们所有的客户都会询问不同的领域Employee,并且我们不想在每次想到要添加的新字段时都弄乱数据库结构.
我们希望存储在xml列中的数据是不经常访问的数据.除了在浏览员工列表时可以查看,还可能需要打印数据.所以我们确实需要沿着数据存储数据类型(有点像数据集序列化其数据)
这是存储未知额外数据的好方法吗?
编辑 给了一个更好的例子
更新 我还没有选择答案,因为我正在与我的团队讨论你们建议的不同方法.
我在物化视图和SQLite上做了无数次搜索.在我能找到的内容中,2004年和2006年似乎提到SQLite没有物化视图.紧接着是SQLite的变更日志,从2008年3月开始,它特别提到了优化物化视图.
现在,我在逻辑上认为2004年和2006年已经过时,或者2008年的更改日志是错误的.
有什么想法吗?
如果物化视图现在在SQLite中,它们是如何创建的?
我见过iPhone上的应用程序,如果在3.0上运行,将使用3.0功能/ API,如应用程序内电子邮件编写器,如果在2.x上运行不使用这些功能,并退出应用程序以启动Mail.
这是怎么做到的?
我最初的想法是使用
#ifdef __IPHONE_3_0
Run Code Online (Sandbox Code Playgroud)
但这只有在我真正针对3.0 SDK构建应用程序时才会起作用 - 这会阻止它在2.x手机上运行.
此外,运行这个想法,应用程序必须与3.0 SDK链接,以获得3.0 API ...
我对它是如何实现有点困惑.
看过其他问题并看不清楚答案.
我们是一个小型开发团队,致力于可以被描述为3个独立的前台"应用程序"(通过asp web的OnlineOrders,TradeManagement winforms app,ASP.NET ReportingSuite).
但无论好坏,这些应用程序中的每一个共享一个中央SQL2005数据库,我们称之为MainDB.它们都使用相同的Orders表结构,Users,Accounts等,每个应用程序都以某种方式使用了相当多的80%的对象.
在TFS中,我曾认为这3个应用程序中的每一个都是独立的项目,包括工作项跟踪,报告等等.似乎工作得很好,我们的"基于代码"的解决方案已经创建.
现在我试图了解如何将MainDB数据库导入TFS源代码控制.我看不出一个明显的方法来做到这一点.
问题是:我是否应该为MainDB创建数据库项目,将模式导出到项目中的脚本中,并将该数据库项目添加到每个TFS项目中的每个解决方案中?
或者我应该为我的数据库项目单独的TFS项目?开发人员必须打开MainDB数据库TFS项目和(例如)TradeManagement TFS项目开放以开发新功能(因为大多数新功能也会涉及一些数据库更改)?似乎非常沉重.
或者只是有一个名为"Everything"的大型TFS项目,并且其中包含代码项目的功能分支,数据库的数据库分支以及可能使用MainDB数据库的任何其他项目?(在img中,假设MainDB脚本位于'Database'文件夹中)
替代文字http://i26.tinypic.com/t7y4bb.png
等人,我很困惑.Codeplex似乎指出通过将所有解决方案放在大单解决方案中来保持简单.这可持续吗?
感谢您的回复,真的很棒.
将数据库视为API的想法很有意思,它就是这样的.数据库来自众多来源,一些内部,一些外部,一些应用程序获取通过另一个应用程序输入的数据.将其作为每个应用程序进出的API控制是一个非常有用的类比,谢谢你.
不支持依赖关系的成本是一个问题,但我认为我们可以足够自律地以有序的方式进行分支.应用程序代码库的分支可能比数据库更复杂 - 我们实际上只是希望源代码控制下的数据库以某种方式满足Sarbannes-Oxley审计要求.
我将不得不考虑更多.
db的水平分区不是我考虑过的.感觉太多的数据库对象被共享以便能够将其切割成水平块 - 我们在几个块中有相同的对象(表/ sprocs等),我认为这会使我们更加困惑.
c# ×3
c++ ×2
iphone ×2
.net ×1
arraylist ×1
boost ×1
casting ×1
cocoa-touch ×1
coding-style ×1
collapse ×1
exception ×1
listbox ×1
objective-c ×1
properties ×1
sql ×1
sql-server ×1
sqlite ×1
tfs ×1
xml ×1