-(NSDictionary *)properties;
+(NSDictionary *)ClassProperties;
Run Code Online (Sandbox Code Playgroud)
现在,我如何从子类调用ClassProperties?
-(NSDictionary *)properties {
return [? ClassProperties];
}
Run Code Online (Sandbox Code Playgroud)
关键是ClassProperties获取类中的属性列表,因此我无法调用基类定义.
我有一个关于C++双重调度的问题.在下面的代码中,我希望第二组的结果与第一组的结果相匹配.
我不知道实际的类型(除非我尝试dynamic_cast)但我知道该对象继承自BaseClass类型.实现这一目标的最有效(性能)方法是什么?
谷歌搜索了一段时间后,我发现了双重调度和loki多方法.我在Shape示例中遇到的问题是,在我的应用程序中,Processor和BaseClass完全独立,并且没有可以相互调用的常用方法.其次,只有一个处理器(即没有从它继承).
谢谢你的帮助.
#include <iostream>
#include <string>
using namespace std;
class BaseClass{
public:
BaseClass(){}
virtual void myFunction(){cout << "base myFunction called" << endl;}
};
class Derived1: public BaseClass{
public:
Derived1():BaseClass(){}
void myFunction(){cout << "Derived1 myFunction called" << endl;}
};
class Derived2: public BaseClass{
public:
Derived2():BaseClass(){}
void myFunction(){cout << "Derived2 myFunction called" << endl;}
};
class Derived3: public BaseClass{
public:
Derived3():BaseClass(){}
void myFunction(){cout << "Derived3 myFunction called" << endl;}
};
class Processor{
public:
Processor(){}
virtual void processObj(BaseClass* bc){cout << "got …Run Code Online (Sandbox Code Playgroud) c++ polymorphism design-patterns double-dispatch late-binding
我有一个C#/ .Net作业,从Excel导入数据然后处理它.我们的客户端删除文件并处理它们(很重要,因为我对原始文件没有任何控制权).
我使用OleDb库来填充数据集(我讨厌编写那些代码.严重的是,.Net开发人员所写的代码是不是更多?).该文件包含一些数字,如30829300,30071500等......这些列的数据类型是"文本".
导入数据时,这些数字将转换为科学记数法.反正有没有阻止这种情况发生?
-克里斯
我正在编写一个应用程序来管理用户对文件的访问.一个很长的故事的简短版本是我必须使用目录和文件priveleges来做到这一点.我们便宜的CEO没有文件管理系统......
无论如何...除了用户可以查看目录中的文件但实际上没有看到文件内容的情况之外,我已经完成了所有工作.(文件中可能存在敏感的HR数据.)
我尝试了FileSystemRights.ListDirectory,但似乎(发送MS文档)也将ReadData设置为true.我关闭ReadData(读取文件的能力),我突然再次无法访问该目录.两者似乎有联系.
有权获得许可的想法吗?
我目前的代码是:
SetSecurity(pth, usr, FileSystemRights.ListDirectory, AccessControlType.Allow);
...
public void SetSecurity(string dirName, string account,
FileSystemRights rights, AccessControlType controlType)
{
// Get a FileSecurity object that represents the
// current security settings.
DirectorySecurity dSecurity = Directory.GetAccessControl(dirName);
dSecurity.AddAccessRule(new FileSystemAccessRule(account, rights, controlType));
// Set the new access settings.
Directory.SetAccessControl(dirName, dSecurity);
}
Run Code Online (Sandbox Code Playgroud)
谢谢.
- 杰瑞
更新2.4.2010 是的,这是一个老问题,但我想我会给出更新.所以,我再次使用ReportViewer,它仍然在初始加载时缓慢渲染.唯一的区别是SQL数据库位于报告服务器上.
更新3.16.2009
我已经完成了分析,并且不是SQL在第一次调用时使ReportViewer缓慢渲染.在第一次调用时,ReportViewer控件会锁定UI线程并使程序无响应.大约5秒后,ReportViewer将解锁UI线程并显示"正在生成报告",然后最终显示报告.我知道5秒并不多,但这不应该发生.我的同事在他的程序中执行相同的操作,并且ReportViewer会根据任何请求立即显示"正在生成报告".
唯一的区别是报告服务器位于一台服务器上,而数据位于另一台服务器上.但是,当我在SSRS中开发报告时,没有延迟.
UPDATE
我注意到只有第一次加载ReportViewer需要很长时间; 相同或不同报告的每个后续加载都会快速加载.
我有一个WinForms ReportViewer,我在远程处理模式下使用,当调用ReportViewer.RefreshReport()方法时,渲染最多可能需要30秒.但是,报告本身运行得很快.
这是设置ReportViewer的代码:
rvReport.ProcessingMode = ProcessingMode.Remote
rvReport.ShowParameterPrompts = False
rvReport.ServerReport.ReportServerUrl = New Uri(_reportServerURL)
rvReport.ServerReport.ReportPath = _reportPath
Run Code Online (Sandbox Code Playgroud)
这是ReportViewer最多需要30秒才能呈现的地方:
rvReport.RefreshReport()
Run Code Online (Sandbox Code Playgroud) 我正在为一个网站开发用户配置文件系统,并在思考什么是更好(可扩展)的方法.我想出了两个解决方案,我正在寻找任何输入或指向我可能错过的东西.
以下create table语句并不是可执行的,而只是用于了解所涉及的表的布局.
我最初的想法是这样的:
CREATE TABLE user(
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
user_email VARCHAR(320),
user_joined DATATIME,
user_last_seen DATATIME,
user_name_first VARCHAR,
user_name_last VARCHAR,
user_name_alias VARCHAR,
user_location_country VARCHAR,
user_location_region VARCHAR,
user_location_city VARCHAR
# ...
);
Run Code Online (Sandbox Code Playgroud)
显然,这根本不是很可扩展,并且添加了令人讨厌的额外属性.一个优点是我可以快速搜索匹配特定属性集的用户.我已经做了一些环顾四周,这是一种非常常见的方法(例如Wordpress).
我的第二种方法(我正在玩的那种方法)更具可扩展性,但我对性能有点担心:
CREATE TABLE user(
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
user_email VARCHAR(320)
);
CREATE TABLE user_profile(
user_id INT UNSIGNED NOT NULL,
visibility ENUM('PRIVATE', 'PUBLIC'),
name VARCHAR,
value VARCHAR
);
Run Code Online (Sandbox Code Playgroud)
使用此方法,每个用户都有一组与之关联的键值对,这使得添加其他属性变得微不足道,以及在用户登录时加载用户配置文件.但是我丢失了第一种方法中的所有类型信息(例如,DATETIME现在存储为格式化字符串),因此一些搜索变得烦人.这确实让我可以更好地控制用户想要公开显示哪些属性.
混合方法会更好地让我平衡两种方法的优缺点吗?SO使用什么方法?还有其他方法可以解决这个问题吗?
扩展:使用混合方法将来自用户表的属性插入user_profile表以控制其对其他用户的可见性或者可能被视为额外开销是否有利?
我是C#开发人员.我非常喜欢花括号,因为我来自C,C++和Java背景.但是,我也喜欢.NET系列的其他编程语言,比如VB.NET.如果你在.NET中编程了一段时间,那么在C#和VB.NET之间来回切换并不是什么大不了的事.这是我工作的公司非常常见的方法.作为C#的人,我非常喜欢withVB.NET编译器提供的XML文字和关键字.我希望微软也将这些功能包含在C#中.
我只是很好奇,其他开发者对它有什么看法!
在开始或计划新项目时,您是否始终倾向于考虑db模式,或者您是否采用其他方式开始设计UI然后向下移动堆栈?
或者你有不同的发展方式?
并非真正的敏捷/瀑布/规格/故事只是一种方式来处理人们在处理个人/专业或其他项目时的倾向.
我已经决定两者都是过去最好的方式,目前我在UI第一阵营,但这可以而且会改变!
干杯约翰
对不起,我对Ant不是很有经验.
我喜欢eclipse"Export ant buildfile"函数,但我需要插入一些自定义任务(复制文件,计算运行时使用的校验和等).
如何将自定义ant任务与Eclipse导出的antfile集成?此外,一旦我这样做,内部构建(运行...)会捡起它还是我总是必须使用外部ant文件来构建从现在开始?
哦,我不想编辑从Eclipse导出的build.xml,因为我希望以后能够重新生成它.
编辑/更新:
我花了一段时间才弄明白发生了什么 - 所以我想我会在这里做一些笔记来澄清.
当您在目录中创建一个新的ant文件并放在<?eclipse.ant.import ?>自定义ant脚本的第一行(我称之为我的test.xml)时,下次将构建文件从Eclipse导出到该目录时,它会看到该标记并添加<import file="test.xml"/>
使用该导入,"自定义"文件(test.xml)中的目标将成为导出的build.xml中的有效目标(或者在导出时选择的任何名称).
在此之后,只要您在Eclipse中选择"build.xml",目标窗格也将包含来自"test.xml"的目标
此外,在此之后,您可以进入项目属性/构建器并添加"Ant Build"类型的新构建器,然后选择要用于构建,清理等的目标.
我有一个查询,从一个表中提取问题,从另一个表中提取答案.
SELECT
questions.question,
questions.answers,
(SELECT COUNT(answer) FROM answers WHERE question_id = 1 AND answer = 1
GROUP BY answer) as ans1,
(SELECT COUNT(answer) FROM answers WHERE question_id = 1 AND answer = 2
GROUP BY answer) as ans2
FROM questions
WHERE questions.id = 1
Run Code Online (Sandbox Code Playgroud)
虽然这有效但我不喜欢为每个答案添加额外的子查询(questions.answers是一个逗号分隔的潜在答案字符串).它是可行的,但我敢肯定必须有更好的方法.主要的是,不同的问题有不同的答案数量.
有没有更好的方法来做到这一点,或者这是一种可接受的做事方式?我认为查询中的多个子选择将来可能会有(小)性能损失(不是我的性能测试).
如果它适用,我不希望每个问题有超过5个答案.
c# ×3
vb.net ×2
.net ×1
ant ×1
architecture ×1
c++ ×1
database ×1
eclipse ×1
excel ×1
late-binding ×1
mysql ×1
objective-c ×1
oledb ×1
optimization ×1
performance ×1
polymorphism ×1
reportviewer ×1