我在一个项目中,以前的程序员一直在复制粘贴代码.这些代码实际上是相同的(或非常相似),它们可以重构为一个.
我花了无数个小时手动重构这些代码,但我认为必须有更好的方法.有些是非常简单的静态方法,可以被移动到祖先类中(但是被以前的初级程序员复制粘贴).
是否有代码分析工具可以检测到这一点并提供报告/建议?如果可能的话,我更喜欢免费/开源工具.
是否有一种内置方式可以在ColdFusion中连接两个数组,类似于JavaScript array.concat()?
我有一个TabControl,我已经重新设计了.TabItem有一个触发器,当选择TabItem时会触发该触发器,将TabItem文本更改为粗体和绿色.我遇到的问题是选项卡内容中的文本也设置为粗体和绿色.
我可以通过将选项卡内容中的所有控件设置为我想要的颜色和字体重量来解决这个问题,但是我应该这样做吗?所以,我必须确保内容区域中的每个文本块都有一个样式,将颜色设置为黑色,字体权重正常.
如何将TabItem的IsSelected部分设置为显示绿色,但是仅保留选项卡的内容?
我试图将TabControl的前景设置为黑色,但这不起作用.
您将从下面的代码示例中看到第一个选项卡上的文本为绿色,我希望它为黑色,但不在选项卡内容中设置每个控件.
代码示例如下:
<Grid>
<Grid.Resources>
<!-- Tab item -->
<Style TargetType="{x:Type TabItem}">
<Setter Property="FontSize" Value="14"/>
<Setter Property="MinWidth" Value="200"/>
<Setter Property="FocusVisualStyle" Value="{x:Null}"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TabItem}">
<Grid>
<Border Name="Border" Padding="5,2">
<ContentPresenter ContentSource="Header"/>
</Border>
</Grid>
<ControlTemplate.Triggers>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="Border.IsMouseOver" Value="True"/>
<Condition Property="IsSelected" Value="False"/>
</MultiTrigger.Conditions>
<Setter Property="FontWeight" Value="Bold"/>
<Setter Property="Foreground" Value="Black"/>
</MultiTrigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="Border.IsMouseOver" Value="False"/>
<Condition Property="IsSelected" Value="False"/>
</MultiTrigger.Conditions>
<Setter Property="Foreground" Value="Black" />
</MultiTrigger>
<Trigger Property="IsSelected" Value="True">
<Setter Property="Foreground" Value="Green"/>
<Setter Property="FontWeight" Value="Bold"/>
</Trigger>
</ControlTemplate.Triggers> …Run Code Online (Sandbox Code Playgroud) 与此问题类似,如何在此上下文中保存之前在连接模型上设置属性?
class Post < ActiveRecord::Base
has_many :post_assets
has_many :assets, :through => :post_assets
has_many :featured_images, :through => :post_assets, :class_name => "Asset", :source => :asset, :conditions => ['post_assets.context = ?', "featured"]
end
class PostAssets < ActiveRecord::Base
belongs_to :post
belongs_to :asset
# context is so we know the scope or role
# the join plays
validates_presences_of :context
end
class Asset < ActiveRecord::Base
has_many :post_assets
has_many :posts, :through => :post_assets
end
Run Code Online (Sandbox Code Playgroud)
我只是希望能够做到这一点:
@post = Post.create!(:title => "A Post")
@post.featured_images << Asset.create!(:title => …Run Code Online (Sandbox Code Playgroud) 在下面的程序中,我打算将文件中的每一行读成一个字符串,分解字符串并显示单个单词.我面临的问题是,程序现在只输出文件中的第一行.我不明白为什么会这样?
#include<iostream>
#include<string>
#include<fstream>
#include<cstdio>
using namespace std;
int main()
{
ifstream InputFile("hello.txt") ;
string store ;
char * token;
while(getline(InputFile,store))
{
cout<<as<<endl;
token = strtok(&store[0]," ");
cout<<token;
while(token!=NULL)
{
token = strtok(NULL," ");
cout<<token<<" ";
}
}
}
Run Code Online (Sandbox Code Playgroud) 我有一个半复杂的问题,希望有人能够帮助我.
在单击事件上,我创建一个线程并基于此方法启动长时间运行的操作.在长时间运行的任务完成后,它会回调到另一种方法,它不后的处理程序:
@Override
public void contentSearchModelChanged(Model_ContentSearch csm, ArrayList<Class_Reminder> newRemindersList) {
remindersList = newRemindersList;
mHandler.post(mUpdateDisplayRunnable);
}
Run Code Online (Sandbox Code Playgroud)
哪个叫Runnable:
// post this to the Handler when the background thread completes
private final Runnable mUpdateDisplayRunnable = new Runnable() {
public void run() {
updateDisplay();
}
};
Run Code Online (Sandbox Code Playgroud)
最后,这是我的updateDisplay()方法正在做的事情:
private void updateDisplay() {
if (csModel.getState() != Model_ContentSearch.State.RUNNING) {
if(remindersList != null && remindersList.size() > 0){
r_adapter = new ReminderAdapater(Activity_ContentSearch.this, remindersList, thisListView);
thisListView.setAdapter(r_adapter);
r_adapter.notifyDataSetChanged();
}
}
}
Run Code Online (Sandbox Code Playgroud)
当我正常地这样做时,这很好用.不过,如果我更改方向的长时间运行的操作运行时,这是行不通的.它确实使回调正确,并且remindersList确实包含项目.但是当它达到这条线时:
r_adapter.notifyDataSetChanged();
Run Code Online (Sandbox Code Playgroud)
什么都没发生.奇怪的是,如果我做的另一项提交并使其再次运行全过程(不改变方向),它实际上更新视图两次,一次为前下一个提交又一次.所以一旦与第一结果视图更新提交,然后再次与第二提交第二次以后的结果.因此,适配器DID获取数据,它只是不刷新视图.
我知道这与方向改变有关,但我不能为我的生活找出原因.有人可以帮忙吗?或者,任何人都可以建议一种处理方向更改线程的替代方法吗?
巴拉
multithreading android listview orientation android-arrayadapter
我有这样的条件:
if (foo == 'fgfg' || foo == 'asdf' || foo == 'adsfasdf') {
// do stuff
}
Run Code Online (Sandbox Code Playgroud)
当然有更快的方式来写这个?
谢谢.
我有一组给定的整数:
A[] = { 2, 3, 4, 5, 6, 7, 8, 10, 15, 20, 25, 30, 40, 50, 100, 500 }
Run Code Online (Sandbox Code Playgroud)
我想检查给定的整数是否T可以写为数字的倍数A[]; EDIT澄清:任何数量的在A [] 可以使用仅可使用一次是used.If.EX 60是有效的T.60 = 30*2.AlSO 90有效.90 = 3*5*6
检查哪些数字可以形成整数T.
T(可以这样写)T.第2部分和第3部分,如果有人帮助我完成第1部分,我想我可以自己解决.
我知道这是一个算法问题,甚至是数学问题,但如果有人可以提供帮助,请做.
不是家庭作业.见下面的评论.
解.非常适合所有答案.1回答特别(但作者选择删除它,我不知道为什么,因为它是正确的.)Ty作者(不记得你的名字.)
带有扭曲的解决方案代码(作者的算法多次使用一次乘法器.这个只使用乘法器1次)
int oldT = 0;
HashMap<Integer, Boolean> used = new HashMap<Integer, Boolean>();
while (T != 1 && T != -1) {
oldT = T;
for (int …Run Code Online (Sandbox Code Playgroud) 我有一个名为azure的天蓝色网站:
http://myapp.cloudapp.net当然这个URL有点难看,所以我设置了一个指向http://www.myapp.com天蓝色网址的CNAME.
一切都很好,直到这里,但有一个障碍.
http://myapp.cloudapp.net 已泄露,现在由谷歌索引,并生活在其他网站上.
我想将myapp.cloudapp.net的任何请求永久重定向到www.myapp.com的新家
我的网站是用MVC.Net 2.0编写的,因为这是一个天蓝色的应用程序,没有用于访问IIS的UI,所有内容都需要在应用程序代码或web.config中完成.
什么是设置永久重定向的简洁方法,如果它放在web.config或全局控制器中?
当我<s:Rect>用来创建一个矩形时,我用它radiusX来获得圆角.问题是所有都是相同的圆润.是否有类似于Rect的东西让我分别控制每个角落的半径?如果没有,从头开始创建这个的最佳方法是什么?图形库还是什么?
adobe ×1
algorithm ×1
android ×1
apache-flex ×1
arrays ×1
associations ×1
azure ×1
c# ×1
c++ ×1
cfml ×1
coldfusion ×1
iis ×1
java ×1
javascript ×1
join ×1
listview ×1
math ×1
mxml ×1
orientation ×1
refactoring ×1
string ×1
strtok ×1
styling ×1
tabitem ×1
tokenize ×1
web-config ×1
wpf ×1