我很清楚这段代码太可怕了.我刚刚做到了所以我可以尝试不同的Swing东西.这是一个有趣的问题.这创建了4个按钮,用于添加,减去,分割和相乘.乘法和加法完美地工作,完全没有问题,但是当用户试图减去它时总是返回0.当用户试图除以它时,总是返回1或1.0,具体取决于输入.我无法弄清楚.这是代码:
(ns rayne.main
(:gen-class)
(:import (javax.swing JFrame JTextField JButton JOptionPane)
(java.awt.event ActionListener)
(java.awt GridLayout)))
(def numbers (ref []))
(def times-clicked (ref 0))
(defn calc [nseq op]
(let [n1 (first nseq)
n2 (last nseq)]
(cond
(= op "+") (+ n1 n2)
(= op "*") (* n1 n2)
(= op "-") (- n2 n1)
(= op "/") (/ n1 n2))))
(defn add-op-button [op text button]
(.addActionListener button
(proxy [ActionListener] []
(actionPerformed [e]
(dosync
(ref-set times-clicked (inc @times-clicked))
(if (= @times-clicked 2)
(do …Run Code Online (Sandbox Code Playgroud) 我目前正在编写一个小的Windows服务应用程序,我可以通过以下方式成功地/卸载它等:
serviceProcessInstaller = new ServiceProcessInstaller();
serviceInstaller = new System.ServiceProcess.ServiceInstaller();
serviceProcessInstaller.Account = ServiceAccount.LocalSystem;
serviceInstaller.ServiceName = "ABC";
serviceInstaller.StartType = ServiceStartMode.Automatic;
serviceInstaller.Description = "DEF";
Installers.AddRange(new Installer[] { serviceProcessInstaller, serviceInstaller });
Run Code Online (Sandbox Code Playgroud)
...但我显然无法在那里设置启动参数......或者我可以吗?我宁愿不继续以后修改注册表..因此问题...有什么办法我可以用编程方式设置这些参数吗?
在未来的C#版本中是否有"扩展属性"的计划?
在我看来,他们可能会非常直接地用更多的"编译器魔术"来实现.例如,在扩展方法名称上使用get_和set_前缀会将该方法转换为扩展属性:
public class Foo
{
public string Text { get; set; }
}
public static class FooExtensions
{
public static string get_Name(this Foo foo)
{
return foo.Text;
}
public static void set_Name(this Foo foo, string value)
{
foo.Text = value;
}
}
Run Code Online (Sandbox Code Playgroud)
是否有任何技术限制可以防止这种情况发生?这会在幕后产生太多东西吗?不值得努力的重要性?
我对保护或配置面向Web服务器的"实时"互联网一无所知,而这正是我被管理层指定做的事情.除了正在安装的操作系统(以及Windows更新)之外,我还没有做过任何事情.我已经阅读了微软和网络上的一些指南,但它们似乎都不是非常全面/最新.谷歌让我失望了.
我们将部署一个MVC ASP.NET站点.
当您准备在新的Windows服务器上部署应用程序时,您的个人检查是什么?
为什么这会返回False
public enum Directions { Up, Down, Left, Right }
static void Main(string[] args)
{
bool matches = IsOneOf(Directions.Right, Directions.Left, Directions.Right);
Console.WriteLine(matches);
Console.Read();
}
public static bool IsOneOf(Enum self, params Enum[] values)
{
foreach (var value in values)
if (self == value)
return true;
return false;
}
Run Code Online (Sandbox Code Playgroud)
这会返回True吗?
public static bool IsOneOf(Enum self, params Enum[] values)
{
foreach (var value in values)
if (self.Equals(value))
return true;
return false;
}
Run Code Online (Sandbox Code Playgroud) 当我们谈论字符串是可变的时,这是使用"可更改"或"可修改"这个词的同义词还是有一些额外的细微差别来解释为什么使用这个术语而不是像"可修改"这样的简单词?
我创建了一个使用递归的非常简单的程序.我正在使用g ++编译器.我可以编译它,但是当我尝试运行它时,我收到一条错误消息,上面写着SEGMENTATION FAULT.这是我的代码:
#include <iostream.h>
using namespace std;
int Recurse(int);
int main(int argc, char *argv[])
{
Recurse(10);
cout << endl;
}
int Recurse(int numTimes)
{
if (numTimes == 0)
return 0;
else
{
cout << numTimes << " ";
Recurse(numTimes--);
}
}
Run Code Online (Sandbox Code Playgroud) 对于我的一个项目,我正在从头开始编写一些STL容器(我有我的理由).由于我如此密切地模仿STL的功能和接口,我正在尽力遵守策略"如果它与标准构造具有相同的名称,它将尽可能符合标准."
所以,当然我的容器将allocator作为模板参数,这非常好,因为它允许一些自定义分配方案.关于我的问题.
所述std::allocator接口从对象分离结构的存储器分配.同样,它将解除分配与破坏分开.这是有道理的,因为从中获取内存与在c ++中正确构造对象或多或少无关.
因此,有两个构造/释放函数对于默认实现看起来像这样(直接从书中解除):
void construct(pointer p, const T& val) { new(p) T(val); }
void destroy(pointer p) { p->~T(); }
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,构造只是调用placement new和destroy只是调用析构函数.
是否有任何理由使用这些而不仅仅使用placement new和析构函数语法?一个"正确的"分配器可以用另一种方式实现这些吗?或者我保证符合标准的所有分配器实现都会以这种方式实现构造/销毁方法吗?
更重要的是,可以说我可以随时使用std::uninitialized_copy和std::uninitialized_fill构建容器的元素吗?
谢谢.
嗨,任何人都知道安装了Silverlight插件的所有北美互联网用户的渗透率(%)?一直在寻找,但找不到任何全面的数字.
我正在寻找普通公众的渗透率,不仅仅是在开发社区内.接近Adobe的Flash版本渗透统计数据会很棒.
我的设计室客户端需要版本控制来保存我正在为他们编写的所有新源代码.颠覆似乎是一个很好的选择,
他们所有的服务器都是OSX.
有没有人知道SVN的一个好的OSX服务器管理器类似于Windows的可视SVN?
我正在寻找一个的原因是因为我感觉他们的IT人员担心安装任何东西或添加任何东西到基础设施.我想尽可能地让他顺利完成这个过程.