2013-02-12 2 views
0

Я пытался поставить некоторые условия, как в следующей процедуреКак назвать флажок в пределах класса

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

Это веб-формы? asp, wpf? – spajce

+0

Является ли это winforms или wpf, или что-то еще? – EtherDragon

+0

Да, это приложение Windows Form в C# – FSm

ответ

1

Зачем вам нужен прямой доступ к элементам управления в методе другого класса, который должен что-то рассчитать? Пользовательский интерфейс с жесткими связями с вашей бизнес-логикой позволит избежать повторного использования кода.

Вы можете передать переменные в качестве аргументов:

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); 
} 

Кстати, вы действительно должны использовать более значимые имена для элементов управления и переменных.

+0

@ Тим, как насчет флажка? – FSm

+0

@Falah: Итак, где этот метод и его класс, в том же классе, что и форма, или, может быть, в вложенном классе. Возможно, в другом классе, в другом пространстве имен или даже в другой сборке? Вы не сказали нам много, поэтому я ответил в целом, поскольку использование элемента управления в качестве входного сигнала в любом случае не будет правильным. –

+0

@ Тим, метод в отдельном классе. Не от – FSm

Смежные вопросы