编程还是新手希望你们帮我解决下面提到的问题。
我有一个程序,由用于代码视图的文本框和用于查看下面每个问题的结果的标签和执行功能的按钮组成。这是项目的简单视图。
要解决的问题:
- 当我按下读取文本框中代码并计算代码复杂度的按钮时,我想要函数。
- 我需要知道代码中有多少属性和对象。
- 继承类在哪里。
- 什么是远耦合类。
实际上我一直在尝试编写代码很长时间,但我没有得到正确的结果。我完成了什么:
- 从 .Cs 文件中打开示例代码。
- 将代码读取到字符串生成器。
- 使用下面的代码获得复杂性,但结果完全错误。
这是我的代码(我让它取决于数组中的匹配):
public int Get_complexity(string SourceCode)
{
int result = 0;
try
{
StringBuilder sb = new StringBuilder();
sb.Append(SourceCode);
char[] delimiterChars = { ' ', '.', '{', '}', '(', ')', ';' };
string SourceCodeText = sb.ToString();
string[] words = SourceCodeText.Split(delimiterChars, StringSplitOptions.RemoveEmptyEntries);
int No_if = FindMatchesInStringArray("if", words);
int No_elseIf = FindMatchesInStringArray("elseIf", words);
int No_while = FindMatchesInStringArray("while", words);
int No_for = FindMatchesInStringArray("for", words);
int No_foreach = FindMatchesInStringArray("foreach", words);
int No_case = FindMatchesInStringArray("case", words);
int No_default = FindMatchesInStringArray("default", words);
int No_finaly = FindMatchesInStringArray("finaly", words);
int No_continue = FindMatchesInStringArray("continue", words);
int No_continues = FindMatchesInStringArray("continues", words);
int No_try = FindMatchesInStringArray("try", words);
int No_catch = FindMatchesInStringArray("catch", words);
int No_and_op = FindMatchesInStringArray("&", words);
int No_or_op = FindMatchesInStringArray("||", words);
int No_words = words.Length;
result = No_if + No_elseIf + No_while + No_for + No_foreach + No_case + No_default + No_finaly + No_continue + No_continues + No_try + No_catch + No_and_op + No_or_op;
}
catch { throw; }
return result;
}
public int FindMatchesInStringArray(string markup, string[] strArray)
{
int result = 0;
try
{
for (int i = 0; i < strArray.Length; i++)
{
if (markup.ToLower() == strArray[i].ToLower())
{
result += 1;
}
}
}
catch
{
throw;
}
return result;
}