我试图按照以下程序设置一些条件
public float GetSimilarity(int doc_i, int doc_j)
{
float[] vector1 = GetTermVector(doc_i);
float[] vector2 = GetTermVector(doc_j);
if (checkbox1.checked == true )
return Similarties.ComputeDiceSimilarity(vector1, vector2);
else if (checkbox2.checked == true )
return Similarties.ComputeCosineSimilarity(vector1, vector2);
else
return Similarties.ComputeJaccardSimilarity(vector1, vector2);
}
,但问题是类内无法识别复选框。请问如何克服这个问题? 。对不起编程很糟糕,并提前感谢。
答案 0 :(得分:1)
为什么需要直接访问不同类中应该计算某些内容的方法中的控件?将UI与业务逻辑硬连接将避免可重用的代码。
您可以将变量作为参数传递:
public float GetSimilarity(int doc_i, int doc_j,
bool compDiceSimilarity, bool compCosineSimilarity)
{
float[] vector1 = GetTermVector(doc_i);
float[] vector2 = GetTermVector(doc_j);
if (compDiceSimilarity)
return Similarties.ComputeDiceSimilarity(vector1, vector2);
else if (compCosineSimilarity)
return Similarties.ComputeCosineSimilarity(vector1, vector2);
else
return Similarties.ComputeJaccardSimilarity(vector1, vector2);
}
顺便说一句,你应该为控件和变量使用更有意义的名称。