可能重复:
你何时应该在C++中使用'friend'?
我正在刷我的C++(我是一名Java开发人员),我偶然发现了friend class我忘记的关键字.这是其中一个功能只是厨房水槽的一部分,还是有充分理由这样做而不仅仅是一个香草吸气剂?我理解它的区别在于它限制了谁可以访问数据,但我无法想到有必要的情况.
注意:我已经看到了类似的问题,但具体我问,这只是一个高级功能,除了让人们看到你的代码时会感到困惑,直到他们意识到你在做什么之后才会增加真正的价值?
这是最近运行的一个用Python编写的不可靠应用程序的堆栈跟踪的一部分,该应用程序控制用Excel编写的另一个应用程序:
pywintypes.com_error: (-2147352567, 'Exception occurred.', (0, None, None, None, 0, -2146788248), None)
Run Code Online (Sandbox Code Playgroud)
显然出现了问题...但是什么?[1]这些COM错误代码似乎过于神秘.
如何解码此错误消息?是否有一个表允许我将这个数字错误代码转换为更有意义的东西?
[1]我实际上知道在这种情况下出了什么问题,它试图访问一个没有Name属性的Range对象上的Name属性...并不是所有的bug都很容易找到!
<?php
$var = NULL;
var_dump(isset($var)); // bool(false)
var_dump(isset($unset_var)); // bool(false)
?>
Run Code Online (Sandbox Code Playgroud)
isset($ var)应返回TRUE,因为它已设置为NULL.
有没有办法检查这个?
谢谢!
鉴于此C API声明如何将其导入C#?
int _stdcall z4ctyget(CITY_REC *, void *);
Run Code Online (Sandbox Code Playgroud)
我已经能够做到这一点:
[DllImport(@"zip4_w32.dll",
CallingConvention = CallingConvention.StdCall,
EntryPoint = "z4ctygetSTD",
ExactSpelling = false)]
private extern static int z4ctygetSTD(ref CITY_REC args, void * ptr);
Run Code Online (Sandbox Code Playgroud)
当然在C#中,"void*"无法编译.
一些谷歌搜索表明它应该被翻译为"对象".这似乎应该工作.但其他人表示"Void*在C/C++术语中被称为函数指针,在C#术语中是一个委托".在这里,这并不是很有意义,因为它会委托给谁?通过谷歌搜索找到的其他API的类似调用使用相应API中的其他函数.但是在这个API中没有其他调用是有意义的.
该调用的文档显示了一个示例:
z4ctyget(&city, “00000”);
Run Code Online (Sandbox Code Playgroud)
这似乎表明甚至可以传递静态值.
它将使用object代替void*进行编译.我不知道这是否正确,我没有机会对其进行测试(许可问题).
我有一个哲学编程问题.假设我有一个名为Employees的类.员工拥有从dataTable设置的业务成员.为了填补这一点,我使用一个方法来获取employee类的实例,遍历dataTable,并设置传递给它的实例的成员.例如:
public void GetEmployees(objEmployee)
{
//the function I am calling returns a dataTable of all the employees in the db.
dim dt as DataTable = dbEmployees.GetEmployees();
foreach(DataRow drow in dt.rows)
{
objEmployee.Name = drow["Name"].ToString();
objEmployee.ID = drow["ID"].ToString();
}
}
Run Code Online (Sandbox Code Playgroud)
然后我会在我的UI逻辑中调用这样的代码:
public void GetEmployees()
{
Employees employee = new Employees();
employee.GetEmployees(employee);
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,将我的类实例传递给一个方法并改变我正在做的属性是否可以接受,或者通过这样的函数来实现它是否更加面向对象:
public Employees GetEmployees()
{
Employees objEmployee = new Employees();
//the function I am calling returns a dataTable of all the employees in the db.
dim dt as DataTable …Run Code Online (Sandbox Code Playgroud) 我希望我的程序在失败时通过电子邮件向我发送错误报告.有没有办法这样做......安全吗?我发现我可以使用System.Net.Mail MailMessage和SmtpClient等,但当然,我必须提供一个用户名和密码(除非有人知道不需要它的人吗?).把它放在代码中我发现了一点......我不知道.从技术上讲,这意味着任何人都可以查看源代码或编译的IL代码(或它被称为),并找到该用户名和密码,并将其用于垃圾邮件或其他不太好的活动.哪个不是很好!
有任何想法吗?对这个问题有更好的和/或不同的方法吗?真的不一定要通过电子邮件.但我想要的是程序在发生应该修复的事情时通知的方法.并且使该通知对用户来说尽可能少麻烦.甚至可能看不见(虽然YesNo消息框可能是礼貌的).
任何人?
我正在使用ASP.NET 2.0 C#.我想用"www"将我对web应用的所有请求重定向到没有"www"
www.example.com到example.com
要么
example.com到www.example.com
Stackoverflow.com已经这样做了,我知道PHP(.htaccess)文件中有预制机制.但是如何在asp.net中做到这一点?
谢谢
在Visual Studio .NET项目中,您可以向项目添加"类图",从而呈现所有名称空间,类,方法和属性的可视化表示.有没有办法为Win32(而不是.NET)C++项目做到这一点?通过Visual Studio本身或第三方工具?
在我的职业生涯中,我遇到了两大类理论:物理理论和教育/管理理论:
根据物理世界的判断,物理理论要么是正确的(在适当的条件下),要么是不正确的.
教育/管理理论看起来像物理理论,但缺乏严格的测试.他们充其量只是提出了解决问题的新方法.多种理论很有用,因为其中一种理论可能会以正确的方式与您交谈.
作为软件工程的业余爱好者,似乎有很多软件工程理论(如敏捷编程,测试驱动设计,模式,极限编程).我是否应该将这些理论视为类似物理或教育/管理?
或者我误解了软件工程并发现自己处于"甚至没有错"的位置?
有没有人知道如何从商业过渡到游戏编程?怎么会有人开始游戏编程?这似乎更令人兴奋和有益(更好的支付?).但看起来大部分失学的工作都是为了商业编程.有关如何操作或是否可以完成的任何建议或见解?