我得到了一本名为"Pro C#2005和.NET 2.0平台,第三版由Andrew Troelsen"的书.我想知道我是否应该购买"Pro C#2010和.NET 4平台,第五版".因为,最新版本的.NET是4.0.如果我根据这本旧书学习C#,我是否会错过C#语言的一些关键部分?或者,我可以从本书开始,并学习其他资源的新.NET 4.0功能.
谢谢
我已经安装了包以显示emacs中的行号.但是,每次我必须手动调用M-x linum-mode才能触发此功能.
有没有办法可以修改我的.emacs文件并自动调用它?
谢谢
; .emacs
(require 'linum)
Run Code Online (Sandbox Code Playgroud) 我使用PHP在XAMPP中访问MySQL.我的问题是,如果出现数据库错误,我可以在哪里找到MySQL日志文件.
另外,我可以更改该日志文件的默认位置/名称吗?
谢谢
/////基于评论//////
mysql> show variables like '%log_file%';
+---------------------------+------------------------------------+
| Variable_name | Value |
+---------------------------+------------------------------------+
| general_log_file | C:/xampp/mysql/data/mysql.log |
| innodb_log_file_size | 5242880 |
| innodb_log_files_in_group | 2 |
| slow_query_log_file | C:/xampp/mysql/data/mysql-slow.log |
+---------------------------+------------------------------------+
4 rows in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud) 给出以下代码片段,
class Num
{
public:
Num(int iNumber = 0) : m_iNumber(iNumber) {}
Num operator+=(const Num& rhs)
{
this->m_iNumber = (this->m_iNumber + rhs.m_iNumber);
return *this;
}
private:
int m_iNumber;
};
//===========================================================
int _tmain(int argc, _TCHAR* argv[])
{
Num a(10);
Num b(100);
b += a;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我想知道如何正确超载operator+=.
问题:
如何定义此运算符的签名?特别是,什么应该用于返回值?
如何实现功能体?
如何使用这个重载运算符?
我已经提供了上述解决方案,但我担心这是不正确的.
我使用CancellationTokenSource来提供一个函数,以便用户可以取消冗长的操作.但是,在用户应用第一次取消后,后面的进一步操作不再起作用.我的猜测是CancellationTokenSource的状态已设置为Cancel,我想知道如何重置它.
问题1:如何在首次使用后重置CancellationTokenSource?
问题2:如何在VS2010中调试多线程?如果我在调试模式下运行应用程序,我可以看到该语句的以下异常
this.Text = string.Format("Processing {0} on thread {1}", filename, Thread.CurrentThread.ManagedThreadId);
Run Code Online (Sandbox Code Playgroud)用户代码未处理InvalidOperaationException跨线程操作无效:控制从其创建的线程以外的线程访问的"MainForm".
谢谢.
private CancellationTokenSource cancelToken = new CancellationTokenSource();
private void button1_Click(object sender, EventArgs e)
{
Task.Factory.StartNew( () =>
{
ProcessFilesThree();
});
}
private void ProcessFilesThree()
{
ParallelOptions parOpts = new ParallelOptions();
parOpts.CancellationToken = cancelToken.Token;
parOpts.MaxDegreeOfParallelism = System.Environment.ProcessorCount;
string[] files = Directory.GetFiles(@"C:\temp\In", "*.jpg", SearchOption.AllDirectories);
string newDir = @"C:\temp\Out\";
Directory.CreateDirectory(newDir);
try
{
Parallel.ForEach(files, parOpts, (currentFile) =>
{
parOpts.CancellationToken.ThrowIfCancellationRequested();
string filename = Path.GetFileName(currentFile);
using (Bitmap bitmap = new Bitmap(currentFile))
{
bitmap.RotateFlip(RotateFlipType.Rotate180FlipNone); …Run Code Online (Sandbox Code Playgroud) 我最近通过我的VS2010看到了以下警告.
警告21警告C4819:该文件包含无法在当前代码页中表示的字符(936).以Unicode格式保存文件以防止数据丢失
c:\boost\vs2010_boost1.49\include\boost\format\alt_sstream_impl.hpp 1
Run Code Online (Sandbox Code Playgroud)
基于MSDN,该文件包含必须以unicode格式保存的字符.
问题:我自己没有触摸过这些文件.有没有办法可以找到这些字符并手动更正.换句话说,我不想以unicode格式保存源文件.
谢谢
我在场景中渲染了一个objectA,如下所示.场景也有许多其他对象.
void Draw()
{
if( glIsList( displayListID ) )
{
glPushAttrib( GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT|GL_ENABLE_BIT );
glEnable( GL_BLEND );
glEnable( GL_DEPTH_TEST );
//glDepthMask( GL_FALSE );
glBlendFunc( GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA );
glEnable( GL_LINE_SMOOTH );
glEnable( GL_POINT_SMOOTH );
glEnable( GL_POLYGON_SMOOTH );
glMatrixMode( GL_MODELVIEW );
color.setAlpha(alpha); // set alpha transparent of this objectA
glCallList( displayListID );
//glDepthMask( GL_TRUE );
glDisable( GL_BLEND );
glPopAttrib();
}
}
Run Code Online (Sandbox Code Playgroud)
现在问题在于
如图所示,我注释掉了两行// glDepthMask(GL_FALSE); // glDepthMask(GL_TRUE);
场景正确地渲染objectA和其他对象.但是,objectA alpha的修改不再起作用(即color.setAlpha(alpha)).
如果我取消注释上面两行,那么alpha修改就会恢复正常.但是,深度渲染不正确.换句话说,有时,objectA应该在其他对象后面,但看起来objectA在所有对象的前面.
我该如何解决这个问题?
谢谢
PHP脚本如下:
<?php // continue.php
ini_set('session.gc_maxlifetime', 5);
session_start();
echo ini_get('session.gc_maxlifetime');
// wait for 7 seconds
usleep(7000000);
if (isset($_SESSION['username']))
{
$username = $_SESSION['username'];
$password = $_SESSION['password'];
$forename = $_SESSION['forename'];
$surname = $_SESSION['surname'];
echo "Welcome back $forename.<br />
Your full name is $forename $surname.<br />
Your username is '$username'
and your password is '$password'.";
}
else echo "Please <a href=authenticate2.php>click here</a> to log in.";
?>
Run Code Online (Sandbox Code Playgroud)
根据超时(即5秒),脚本不应打印任何内容.但是,我仍然收到以下消息
5Welcome back Bill. Your full name is Bill Smith. Your username is 'bsmith' and your password is …Run Code Online (Sandbox Code Playgroud) 给定以下时间段:
$str = '2000-11-29';
$php_date = getdate( $str );
echo '<pre>';
print_r ($php_date);
echo '</pre>';
Run Code Online (Sandbox Code Playgroud)
如何用PHP获取年/月/日?
[seconds] => 20
[minutes] => 33
[hours] => 18
[mday] => 31
[wday] => 3
[mon] => 12
[year] => 1969
[yday] => 364
[weekday] => Wednesday
[month] => December
[0] => 2000
Run Code Online (Sandbox Code Playgroud)
我不知道为什么我一年都会得到1969年.
谢谢
我在中创建了一个本地git存储库C:\temp\ConsoleApplication1.然后我单击Git Flow按钮,然后单击确定接受所有默认设置.现在在分支机构下,我可以看到开发和掌握.
接下来,我再次单击Git Flow以启动新功能,然后进行一些更改,最后完成该功能.
现在我的分支看起来如下:
[develop] add line 1
[master] initial commit
Run Code Online (Sandbox Code Playgroud)
问题:我想将开发合并到主分支中.实现这一目标的正确方法是什么?
我试图选择develop分支,然后单击Merge按钮.无论我选择哪个提交,都没有任何反应.我也试图选择高手,看不出任何区别.